webサーバのアクセスログからステータスコードの集計を取る

[(っ´∀`)っ@www ~]$ cat bin/LOGCOUNT
#!/bin/bash
LANG=C
LOGDATE=$(date '+%b %d %H:%M:%S')
ME=$(basename $0)
HNAME=$(hostname -s)
PID=$$
LOG0=/var/log/nginx/example.jp.access.log-$(date +%Y%m%d)
LOG1=/var/log/nginx/example.jp.access.log
TMP=${HOME}/tmp/${ME}_tmp.txt
OUT=${HOME}/logs/${ME}/${ME}_$(date +%Y%m%d).log
[ ! -d ${HOME}/logs/${ME} ] && mkdir -p ${HOME}/logs/${ME}
sudo cat $LOG0 | egrep $(date +%d/%b/%Y) > $TMP
sudo cat $LOG1 >> $TMP
echo | awk '{print "STATUS""t""COUNT"}'
cat $TMP | awk '{print $9}' | sort | uniq -c | sort -nr |
awk '{print $2"t"$1}'
wc -l $TMP | awk '{print "TOTAL""t"$1}'
ログのローテーション設定により、変数LOG0とLOG1で指定するファイル名が変わりますので、これらはよく確認してくださいね。出力結果はこんな感じです。
[(っ´∀`)っ@www ~]$ LOGCOUNT STATUS COUNT 200 224691 304 12849 404 7340 500 2904 "-" 1261 301 499 302 191 206 69 403 18 408 12 400 4 401 1 TOTAL 249839
ね、簡単でしょう?
[amazonjs asin=”4844333399″ locale=”JP” title=”できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 (できるPROシリーズ)”]