仕事でpingを打ちっぱなしにしてた時、音で成功した祭は通知させられないかなぁ、と思ったので、やれないか調べてみた。
まぁ、そもそもビープ音でよければもう用意はされているのだけど、イヤホンで音楽聴いてたりしていると聞き逃すので、もうちょっと主張の激しい音で知らせて欲しい。
という訳で、pingで疎通に成功・失敗した際に任意の音で通知をさせるようにしてみよう。
前提として、ssh越しのサウンドのやり取りというのが設定とか面倒そうなので、この方法はssh接続先のサーバで実行するのではなく、あくまでも手元のMacやLinux上からとなる。
任意の文字列を読み上げさせる場合
pingの疎通成功・失敗時に任意の文字列を読み上げさせる場合は、Macであればsayコマンド、Linuxであればaplay+text2waveを用いると良いだろう。
以下の例では、疎通成功時は「OK」、疎通失敗時は「NG」と読み上げさせる。
Macの場合
while true; do ping -c 1 対象ホスト > /dev/null && say "OK" || say "NG" ; sleep 1; done
Linuxの場合
while true; do ping -c 1 対象ホスト > /dev/null && (echo "OK" | text2wave | aplay) || (echo "NG" | text2wave | aplay) ; sleep 1; done
任意のオーディオファイルを読み上げさせる場合
任意のオーディオファイルを読み上げさせる場合は、どちらもmplayerを使えば良いだろう。
while true; do ping -c 1 対象ホスト > /dev/null && mplayer オーディオファイルPATH || mplayer オーディオファイルPATH ; sleep 1; done