.." />

道具としてのコンピュータ

2012年5月7日
さくらのVPSを使ってシェルプログラミングをしてみよう! その2


前回はWebアンテナを作るために、さくらVPSの設定をいじったりw3mコマンドをインストールしたりしました。

今回は、チェックしたいURLのリストを作って、そのURLが変化しているかどうかを、チェックするためのシェルスクリプトを書いてみます。

まず、以下のようにディレクトリ構成を決めました。

[luye@www11132ue ANTENNA]$ ll
合計 12
-rwxrwxr-x 1 luye luye 657 5月 6 23:52 2012 ANTENNA.sh
drwxrwxr-x 2 luye luye 4096 5月 6 21:40 2012 LIST
drwxrwxr-x 2 luye luye 4096 5月 6 22:58 2012 MD5

ANTENNA.shはプログラム本体です。
同じ階層にディレクトリを2つ作りました。LISTがURLのリストを入れておくディレクトリ。
MD5はw3mコマンドで取得したMD5の値を日付順に入れておきます。

そして、ディレクトリLISTに以下のようなURL一覧を入れておきました。

[luye@www11132ue LIST]$ cat URLLIST
A社 http://www.aaa.co.jp/company/news/
B社 http://www.bbb.co.jp/company/news/index.html
C社 http://www.ccc.co.jp/company/news_releases/
D社 http://www.ddd.jp/company/press/index.html
E社 http://www.eee.co.jp/kg/news.html
F社 http://www.fff.co.jp/corporate/release/
G社 http://www.ggg.co.jp/ir/release.php
H社 http://www.hhh.co.jp/release/
I社 http://www.iii.co.jp/
J社 http://www.jjj.co.jp/release.html
K社 http://www.kkk.co.jp/company/index.html

※URLはダミーです。

このURLをw3mでダンプして取得したmd5値一覧を、DATAディレクトリに日付順に保管しようと思います。

とっても久しぶりに書いたスクリプトが以下。

#!/bin/bash -xv

# ANTENNA.sh
# by LuyeHuizi 2012.05.06

exec 2>/tmp/log

tmp=/tmp/$$
today=$(date +%Y%m%d)
yday=$(date +%Y%m%d –date ‘1 days ago’)
dir=/home/luye/ANTENNA
listd=$dir/LIST
datd=$dir/MD5

#本日分のデータ作成
awk ‘{print $2}’ $listd/URLLIST |
while read line ;
do
w3m -dump $line |
md5sum ;done |
ycat $listd/URLLIST – > $datd/$today

#昨日のデータと比較 エラーがあったらメールを送信

if diff $datd/$yday $datd/$today > $tmp-work1 ;
then
echo 変化無しなので何もしない;
else
echo 変化有りだからメール送信の処理をここに書く;
fi

exit 0

URLリストからAWKでURLだけを取ってきてcatして、
readコマンドでlineという関数に入れて、w3mに食わせ、md5チェックサム値一覧を作ります。
そのあとに出てくるycatというコマンドは、USP研究所のコマンドを使いました。

(たぶんURLリストとmd5チェックサム値は行数同じだと思うから大丈夫…だろうか。
何か問題があったら考えよう)

んで、出来上がったファイルがこちら。

[luye@www11132ue MD5]$ cat 20120506

A社 http://www.aaa.co.jp/company/news/ 6acf0e4cbcf3900e9f28bb9542d217f9 –
B社 http://www.bbb.co.jp/company/news/index.html efeac4a9b6c10754ee3faf632fcd92b8 –
C社 http://www.ccc.co.jp/company/news_releases/ cc4fae16db16531221ab8069081760a7 –
D社 http://www.ddd.jp/company/press/index.html 69640a574c801a27687f3c53ed5c59ca –
E社 http://www.eee.co.jp/kg/news.html d087dbb3b78a19f8023bbf93c7a8e175 –
F社 http://www.fff.co.jp/corporate/release/ d17a1cdd827b7f0e25597b176cac85e2 –
G社 http://www.ggg.co.jp/ir/release.php 9c75733fb561cd7d35411ffdc973fc06 –
H社 http://www.hhh.co.jp/release/ c0246b059cc892a5a561466ceb5e5e59 –
I社 http://www.iii.co.jp/ 5492048489d96c24bbb35516206394a5 –
J社 http://www.jjj.co.jp/release.html 51056b7530ea5788758e28efeb1b8642 –
K社 http://www.kkk.co.jp/company/index.html bf37fb5daffada55a850ab5f716346cf –

diff以下で、昨日のmd5ハッシュサムファイルと、今日のmd5ハッシュサムファイルを比較して、
もしも終了ステイタスが、0以外であれば、変化があったということでメールを送る、という処理です。

メールを送るためには、25番ポートが空いていないといけないようなのですが、
(うー、ここらへんはよくわかんないんだよね…メールサーバの設定は鬼門…)
さくらVPSの試用期間中は、25番ポートは空いていないので、正式申し込みをして、
しばらく契約情報が変更されるのを待ちたいと思います。

今日はここまで!次回は「メールで更新情報を送るぞ!」をお送りします。

アドバイス等々ありましたら、facebookなどにいただけるとありがたいです。

Related Posts

 

コメント1件