人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apacheのaccess_logを解析しようとしています。http://hoge.net/index1.html ? http://hoge.net/index99.htmlまでが並んでいて、それぞれのアクセス数を知りたいと思っています。
wc uniq sortなどのコマンドを使って、

file access
index40.html 40
index87.html 37
index2 32
......

といった結果を出力するにはどのようにすればよいでしょうか。(タイトル行の表示は不要です。)

●質問者: nikita_r
●カテゴリ:コンピュータ インターネット
✍キーワード:access Apache HTML アクセス数 コマンド
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●60ポイント

もっと良い方法があるかもしれない(いや、きっとあるはず・・・)が、

ちょっと考えてみたので、参考まで・・・。

tr -s ' ' '\n' < /var/log/apache2/access_log | grep 'http://hoge.net/index\d*\.html' | sort | uniq -c

access_log のファイルパスや、grep の正規表現部分は適宜変更してください。


まずは grep の部分を省いてみると動きが判ると思いますが、その際には、

あらかじめ access_log から数行分を抜粋したファイルを別途用意して、

そのファイルに対して実施したほうが良いでしょう。(grep の部分無しで、

access_log を解析すると、とんでもない量の結果が出力されちゃいます。)


URL必須との事で、とりあえず各コマンドのマニュアル。

http://www.linux.or.jp/JM/html/gnumaniak/man1/tr.1.html

http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

http://www.linux.or.jp/JM/html/gnumaniak/man1/sort.1.html

http://www.linux.or.jp/JM/html/gnumaniak/man1/uniq.1.html

◎質問者からの返答

ありがとうございました。

なるほど、いちどtrでばらすんですね。うまく行きました。


2 ● y-kawaz
●10ポイント

access_log が common や combined などのデフォルトのLogFormatと過程したい場合、以下のような感じでどうでしょうか?

cat /var/log/httpd/access_log | perl -pe's/.*?".*? //;s/ .*//' | egrep 'index[0-9]+.html' | sort | uniq -c

http://q.hatena.ne.jp/answer

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ