仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

即席の死活目視

ひん死のサーバ(ハードトラブル?で定期的に謎の再起動)を死活監視する、即席で起動しているかを確認する手段を考えた。監視というより目視

$ watch -n1 'ping -c1 host >/dev/null && echo "`date \"+%Y-%m-%d %T\"`: host is alive."'

なんと、-dcオプションをつければ死んだら分かりやすい優れもの!

$ watch -n1 -dc 'ping -c1 host >/dev/null && echo "`date \"+%Y-%m-%d %T\"`: host is alive."'

と思ったけど、--differencesオプションじゃなければダメだ。cumulativeオプションまでつけると、stickyになるのから目的にそぐわない。

$ watch -n1 --differences 'ping -c1 host >/dev/null && echo "`date \"+%Y-%m-%d %T\"`: host is alive."'

最初ビープ音ならしてみたけど、watchコマンドだと鳴らない?
ちゃんとmanみてみたら、bugとして載っていた。
……現実逃避してないで対応しなきゃ……。

わぉ

$ ssh -t host 'last -n 10 reboot |grep "^reboot" |awk '\''{ system("date --date=\"" $5 " " $6 " " $7 " " $8 "\" \"+%Y%m%d %T\"") }'\'' | sort -n -r'
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx
2011011x xx:xx:xx

完全に悪のりしてみた。

#!/bin/sh

HOST=foo

bell_the_alive()
{
    echo "`date '+%Y%m%d %T'`: ${HOST} is alive.\007"
    return 0
}
bell_the_died()
{
    echo "${HOST} is died...\007\007\007\007"
    return 0
}
while :
do
    ping -c 1 -i 1 -t 1 $HOST >/dev/null 2>&1
    if [ $? -eq 0 ] ; then
        bell_the_alive
    else 
        bell_the_died
    fi
    sleep 1
done