$ 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 件のコメント:
コメントを投稿