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