とあるURLの表示内容を5分間隔で確認したい。
# watch_url.sh
URL=https://example.com/foo/bar # 監視対象のURL
INTERVAL=300 # 監視間隔
# Macのデスクトップ通知
function notify_desktop () {
title=$1
message=$2
osascript -e "display notification \"$message\" with title \"$title\""
}
MD5HASH_OLD=''
while :
do
# CURLでページの内容を取得、MD5を算出
# 前回と比較して異なっていたら、デスクトップに通知
MD5HASH_NEW=`curl /dev/null $URL 2> /dev/null | md5`
if [ "$MD5HASH_OLD" != "$MD5HASH_NEW" ]; then
notify_desktop "ページ監視" "更新されました"
MD5HASH_OLD=$MD5HASH_NEW
fi
echo -n .
sleep $INTERVAL
done
あとは実行するだけ。
やめるときは CTRL+C
で。
$ bash watch_url
.....
なんかあると、こんなふうに出る。
やっていないこと
いつもいつも使うものじゃないから、がんばらなくていいかと思って、ほったらかしてる。
- 対象のURLや監視間隔を引数にする
- 起動直後に「更新されました」が出ないようにする