$ mysql -u [user name] -p [database name]
create table ping_result ( id integer NOT NULL AUTO_INCREMENT PRIMARY KEY, target_address char(20), observation_time char(20), str_ping char(20) );
$ get_data.sh
#!/bin/sh observation_time=`date +%Y%m%d%H%M%S` target_list=`/usr/bin/mysql -u [user name] -p[password] [database name] -e "select ip_address from server_list" | sed '1d'` for target_address in $target_list do str_ping="" str_ping=`ping -c 1 -t 1 $target_address -q | sed '1,3d' | grep '0 received'` if test -z $str_ping then str_ping="OK" else str_ping="NG" fi echo $target_address" : "$str_ping; echo "insert into ping_result (target_address,observation_time,str_ping) values ('"$target_address"','"$observation_time"','"$str_ping"');" >> temp.sql done /usr/bin/mysql -u [user name] -p[password] -s [database name] < temp.sql rm temp.sql exit 0
$ chmod u+x get_data.sh
$ ./get_data.sh
シェルスクリプトを用いてMySQLに値が登録された事の確認
$ mysql -u [user name] -p [database name]
select * from ping_result;
Linuxの自動実行機能を用いて,定期的にシェルスクリプトが動作するように設定
.crontab
# +------------ 分 (0 - 59) # | +---------- 時 (0 - 23) # | | +-------- 日 (1 - 31) # | | | +------ 月 (1 - 12) # | | | | +---- 曜日 (0 - 6) (日曜日=0) # | | | | | # * * * * * 実行されるコマンド #================================================================= # get_data.sh #毎時5,15,25,35,45,55分に情報取得・DB登録 #================================================================= 5,15,25,35,45,55 * * * * /home/[user name]/get_data.sh &
0 件のコメント:
コメントを投稿