access_logデータ抽出もろもろ

Apacheアクセスログ

・ロードバランサの問題でログの中身の時間がバラバラ→「ちゃんと時系列に&時間帯を指定」
・かつ同一IPでUniqに絞りたい
・かつページURLにxxxを含む
・かつページURLにyyyを含まない
という条件を満たしたく


   ※ログフォーマットのディレクティブはデフォルトのまま

cat /var/log/httpd/access_log | grep "30/Nov/2010:11" | uniq -c | awk '{print $1,$2,$5,$8}' | grep xxx | grep -v yyy | cut -d" " -f2- | awk '{print $2,$3,$1}'| cut -b2- | sort > access_check11.log

〜ループ〜

cat /var/log/httpd/access_log | grep "30/Nov/2010:15" | uniq -c | awk '{print $1,$2,$5,$8}' | grep xxx | grep -v yyy | cut -d" " -f2- | awk '{print $2,$3,$1}'| cut -b2- | sort > access_check15.log

#(例)2010/11/30の11:00から15:00までの分


#時間帯で区切ったものを結合

cat access_check11.log access_check12.log access_check13.log access_check14.log access_check15.log > access_check.log 

ひとまずこんな感じ

どのくらい複雑になってきたらPerl使ったほうがよいか、とか判断がむずい