更新があったらメールで知らせる
crontab等に /path/to/watch.sh 'https://example.com' のように登録しておけばサイトの更新があったらメールで差分を知らせてくれるbashスクリプトを(bashのマニュアルを調べながら)書いた。あらかじめ作業用のディレクトリ(ここでは /home/okumura/watch)を作っておく。
#! /bin/bash
if [ $# -ne 1 ]; then
exit 1
fi
export LC_ALL=en_US
cd /home/okumura/watch
uri=$1
md=`echo -n $uri | md5sum | cut -d ' ' -f 1`
if [ -d $md ]; then
cd $md
f=`ls`
cp -fp $f .$f
wget -N $uri 2>.out
if grep saved .out; then
if ! diff .$f $f >.$f.diff; then
cat .$f.diff | mail -s "Changed: $uri" okumura@example.org
fi
fi
else
if [ -e $md ]; then
rm -f $md
fi
mkdir $md
cd $md
wget -N $uri 2>.out
fi
URLから生成したハッシュ値のディレクトリを作り,その中で wget -N する。新しいファイルが取得され,なおかつ差分があれば,メールで報告する。