2013年9月7日

顯示 apache2 log 中,次數最多的前 n 個 IP

tail -n 1000 apache2/logs/www.log | cut -d' ' -f1 | sort | uniq -c | sort -nr | head -n10
  • tail -n 1000 apache2/logs/www.log 取出最後一千行
  • cut -d' ' -f1 以空格為區分取出第一部分,也可以用 awk '{print $1}'
  • sort 第一次排序
  • uniq -c 同樣的只顯示一個、加上 -c 是計數的意思
  • sort -nr 第二次排序,用數字並且反向排序(預設是文字型態排序)
  • head -n5 取出前5名

這時候如果搭配上 watch 指令的話就更方便了

watch -n 10 "tail -n 1000 apache2/logs/www.log | cut -d' ' -f1 | sort | uniq -c | sort -nr | head -n10"

每 10 秒自動抓一次 log 並分析

0 意見:

張貼留言