Apacheのログを「tail -f」している時、特定の「Status Code」を絞り込みたいケースがあります。以下その一例となります。(2013/07/06作成)
Status Code(ステータスコード)404 または 500のみを「tail」する方法
tail -f access_log | awk '$9 ~ /(404|500)/ {print $4, $7, $9, $11, $1, $12, $NF;}'
tee などでログ出力する際は、fflushでバッファのフラッシュを行う必要があります。
tail -f access_log | awk '$9 ~ /(404|500)/ {print $4, $7, $9, $11, $1, $12, $NF; fflush()}' | tee a.log
出力結果
[06/Jul/2013:21:15:07 /a.html 404 "-" xxx.xxx.xxx.xxx "Mozilla/5.0 Safari/537.36" [06/Jul/2013:21:16:21 /b.html 404 "-" xxx.xxx.xxx.xxx "Mozilla/5.0 Safari/537.36"
以上