2009年12月28日月曜日

Syslogの内容をモールス信号でブザーから発音させる

まだ書いてなかったようなので一応。
サーバマシンには普通ディスプレイなどの出力装置はついていないことが多い。したがって、何かあればメールやついったーなどで知らせるのが当たり前だが(?)、私のサーバの場合、普段隣で動いているので、いちいちインターネットを経由するのは無駄であると言っていい。
そこで、唯一ついている出力装置であるブザーを使ってsyslogの内容を通知しようと思った。ただ単音では面白くないので、モールス信号で全てを読み上げさせる。

モールス信号を発音
今回のために、モールス信号を発音するためのシェルスクリプトを作った。標準入力から得られた英数字と記号をモールス信号で発音する。私のWebページにて配布している。
$ echo 'sos' | ./morse -h 120 -l 80

Syslogの設定
Debian lennyの場合、syslogではなくrsyslogが採用されている。したがって、/etc/rsyslog.confに以下の設定を追加する。
*.notice -/tmp/morse.tmp

FIFOを使えばよかったのだが、今回はとりあえずファイルでやってみる。

そして、以下のようなワンライナーを実行しておく。
$ tail -fn 0 /tmp/morse.fifo | perl -ne 'open(PIPE, "| morse -h 250 -l 40"); print;print PIPE; close(PIPE);sleep(3);'

これで、noticeレベル以上のログが記録されたタイミングで、モールス信号が発音されるようになった。

感想
ここまでやっておいて言うのもどうかと思うが、私は全くモールス信号がわからない。しかし、サーバから時々モールス信号が発せられていると、映画に出てくるマシンのようで非常に格好良い。贅沢を言うならタコメータがあればなお雰囲気はよくなるが、そこまで技量が無いので今回は残念だが見送った。
なお、今回はモールス信号が鳴っている様子を動画に収めた。300円もあれば購入できる出力装置なので、Linuxマシンが有るなら検討してみても良いのではないだろうか。

0 件のコメント:

コメントを投稿