2010年6月15日火曜日

logを追いかけるときに便利な小ワザ


linuxでログを追いかけ、特定の文字列が出た場合にアクションをとりたい。
ログ監視をしかけるほどでもなく、暫定的にしばらく見る必要がある場合などに
便利なコマンドをメモ。


◆ "ERROR"行でかつ"timeout"が含まれていたら、ビープ(beep)音を鳴らす。
% tail -f ./hoge | grep --line-buffered "ERROR" | sed -u "s/timeout/timeout\a/g"
ERROR timeout ← ビー!!


◆ "ERROR"行でかつ"timeout"が含まれていたら、その文字列を赤くして、
 ビープ音を鳴らす
% tail -f ./hoge | awk '/ERROR/{if($0~/timeout/){print "\033[0;31m"$0"\033[0m\a"}else{print}}'
ERROR timeout ← ビー!!