2016年8月1日 星期一

計算網頁被某個IP瀏覽過的次數

最近某個寫的網頁似乎被用程式不斷的query,造成系統資源吃太多。去/var/log/apache2裡面檢查 error.log 與 access.log 與 other_vhosts_access.log,看究竟是從哪些IP來連的。下面以 other_vhosts_access.log 為例子:
  • cat other_vhosts_access.log | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | sort | uniq -c | sort -n
  • zcat other_vhosts_access.log.*.gz | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | sort | uniq -c | sort -n

首先把檔案印出來;丟給grep去抓取IP;用sort把抓到的IP排序;用uniq -c計算每個IP出現的次數;最後根據出現次數用sort -n排序。所以上面指令的意思是:
  • 計算 other_vhosts_access.log 裡面每個IP出現的次數
  • 計算 other_vhosts_access.log.*.gz 裡面每個IP出現的次數
這樣就可以很快地知道究竟是哪些IP寫程式自動的丟工作...

_EOF_

沒有留言:

張貼留言