Spica*

プログラミングの話。

サイトが更新された時に通知するシェルスクリプト

イベント事とかで、人が殺到してメンテナンス状態になることとかありますよね!! F5を定期的に押して監視するのも手が掛かる…F5連打したい気持ちも分かります。「DoSかよ氏ね」と悟られたくない気持ちもわかります。

そんな時、簡単自動pollingによる監視を行うのはいかがでしょう!

alloy/terminal-notifierをインストールする

$ brew install terminal-notifier

スクリプトを書く

#!/usr/bin/env sh

OLD_SIZE=0
POLL_URL="https://example.com/"

func()
{
    NEW_SIZE=`curl -L "$POLL_URL"| wc -c`
    if [[ $OLD_SIZE -eq 0 ]]; then
        OLD_SIZE=$NEW_SIZE
    fi

    echo "new=$NEW_SIZE, old=$OLD_SIZE"
    if [ $OLD_SIZE -ne $NEW_SIZE ]; then
        terminal-notifier -message "Site Available!!"
        date
    else
        date
        echo "Sleeping..."
        sleep 300s
        func
    fi
}

func

実行する

$ chmod +x poll_checker.sh
$ ./poll_checker.sh

はい!これで安心して仕事ができますね!