目次

アクセスログからアクセスの多いIPアドレスを抽出

grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" /var/log/httpd/access_log | sort | uniq -c | sort -r | head -n 15

※ 上記コマンドは、コメントで s.mori さんにご指摘頂いた間違いを修正済みです

解説

grep -E

検索に「拡張正規表現」を使えるようにする。
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} でIPアドレスに一致させる。

grep -o

通常の grep では一致した行全体が表示されるが、-o を指定することにより一致した文字のみを表示させることができる。

sort

次の uniq で重複行のカウントを行うため、並び替える。

uniq -c

重複行のカウントを表示する。
今回の場合は、重複したIPアドレスのカウントを表示する。

sort -r

カウントの降順で並べ替える。

head -n

出力する行数を指定する。