日付のないログに日付をつける
ちょっとした必要にかられて書いた。動作は↓読んだまんま。
#!/usr/bin/perl use strict; while(<STDIN>) { my $d=&now(); print "$d $_"; } sub now() { my ($sec,$min,$hour,$mday,$mon,$year,undef) = localtime(time); my $d = sprintf("%02d/%02d/%02d %02d:%02d:%02d", $year-100,$mon+1,$mday,$hour,$min,$sec); return $d; } exit 0;
mysqlの動きっぷりを見るために
$ while true ; do mysqladmin status ; sleep 5 ; done
とやってたんだけど、後から時間つきでグラフ化できるように書いたのです。実際に使ったコードは、while()ループの中で$_をいじくって表示をカスタマイズしてるんだけど、例示には向かないので一般に使えそうな内容に改変。
$ while true ; do mysqladmin status; sleep 5 ; done | ./date-add-filter.pl
こうやって使った。実際は tail -f にパイプで繋いで使う場面のほうが便利だな。
$ tail -f /path/to/file.log | ./date-add-filter.pl
とかね。
- 10回に一回ヘッダを出す
- ヘッダを出さないオプションを作る
- usageなんてものを書いてみる
こんなことしてくとツールっぽくなるけどそれはそれ。
事が起きてログが
………………。
↑こんなものを書いて、なおかつ全部済んだあとに気づいた話。
TeraTermのログ吐き機能にタイムスタンプを足すオプションが実装済みだった。やっちゃったなぁ。車輪の再発明ってほど大げさじゃないけどさ。かっこわるーい。