Apache日志分析一行指令
最近我经常使用的东西
一般情况下,默认使用日志格式。
根据环境的不同,可以通过改变awk的参数来支持自定义格式等(至少应该可以)。
# アクセス元 IP の一覧
$ cat /var/log/httpd/access_log | cut -d ” ” -f 1 | sort | uniq
# ユーザエージェントの一覧
$ cat /var/log/httpd/access_log | awk -F ‘”‘ ‘{ print $6 }’ | sort | uniq
# リファラ別
$ cat /var/log/apache/access.log|awk '{print $11}'|sort|uniq -c|sort -n
# ブラウザ毎のアクセス数
$ for UA in MSIE Firefox Chrome; do COUNT=`grep “$UA” /var/log/httpd/access_log | wc -l`; echo “$UA : $COUNT”; done
# 特定ファイルへのアクセス数を抽出
$ cat /var/log/httpd/access.log | grep favicon.ico | wc -l
可以使用awk来指定日志的时间范围。如果是系统日志,可以指定系统日志的时间格式;如果是apache日志,可以指定apache日志的时间格式。
$ cat file | awk -F - '"開始時間" < $1 && $1 <= "終了時間"'
在实时中使用tail -f指令,无需grep缓冲。
$ tail -f file | grep --line-buffered "word"