1.データ受け入れ先となるテーブルを作成
$ mysql -u [user name] -p[password] [database name]
create table river_water_level ( id integer NOT NULL AUTO_INCREMENT PRIMARY KEY, observation_time char(20), river_water_level char(20) );
2.Shell Scriptの作成
指定した部分を正しく抜き出せるか確認
$ curl --silent --location 'http://mizubousaiyokohama.jp/suii_point.cgi?point_code=546649' | iconv -t UTF-8 -f SHIFT-JIS | grep -A 10 'suii_now_image_1.*.gif' | sed 's/<[^>]*>//g' | sed '1,8d' | cut -d " " -f 2 | sed '2,3d' | sed 's/-$/0/g'
指定した部分を正しく抜き出せたら,Shell Scriptに組み込む
$ vi get_river_water_level.sh
#!/bin/sh observation_time=`date +%Y%m%d%H%M%S` #横浜市水防災情報サイトより河川水位情報取得し,該当部分抜き出し str_river_water_level=`curl --silent --location 'http://mizubousaiyokohama.jp/suii_point.cgi?point_code=546649' | iconv -t UTF-8 -f SHIFT-JIS | grep -A 10 'suii_now_image_1.*.gif' | sed 's/<[^>]*>//g' | sed '1,8d' | cut -d " " -f 2 | sed '2,3d' | sed 's/-$/0/g'` echo "insert into river_water_level (observation_time,river_water_level) values ("$observation_time","$str_river_water_level");" >> temp_river_level.sql /usr/bin/mysql -u [user name] -p[password] -s [database name] < temp_river_level.sql rm temp_river_level.sql exit 0
3.Shell Scriptへの実行権限付与
$ chmod u+x get_river_water_level.sh
4.Shell Scriptの実行
$ ./get_river_water_level.sh
5.シェルスクリプトを用いてMySQLに値が登録された事の確認
$ mysql -u [user name] -p [database name]
select * from river_water_level;
6.crontabへの登録
$ crontab -e
6,16,26,36,46,56 * * * * /home/[user name]/get_river_water_level.sh &
7.crontabに正しく登録されたか確認
$ crontab -l
0 件のコメント:
コメントを投稿