Apache、NGINXのアクセスログからファイルごとのアクセス回数をawk で集計する
awkを使って集計します。
Contents
proc.awk
#!/bin/gawk -f
{
sub(/?.*$/, "", $7);
filepath[$7]++;
}
END{
for (i in filepath) {
print filepath[i], i;
}
}使い方
$ ./proc.awk access_log解説
アクセスログをスペース区切りで見たときに7番目の項目がファイル名になるので、$7でアクセスすれば良いことがわかります。
$7 には?に続くGETクエリも入っているので、これを除去します(4行目)。filepath 配列をファイル名ごとのカウンタとして使って数えていきます(5行目)。
出力結果はsort -nでアクセス回数順にソートできます。


