python读取日志统计ip_如何通过命令行统计和排列访问日志里的ip数
以下的方式速度都會卡在sort上面,數量越多越麻煩。
Shell方法:grep -i -o -E -r -e "([0-9]{1,3}\.){3}[0-9]{1,3}" access.log | sort -n | uniq -c | sort -n
awk方法:
如果是accesslog 格式應該是固定的 會簡單些。因為awk做排序也比較的郁悶,所以暫時用sort吧。awk '{if ($1 ~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){ip[$1]++}}END{for(i in ip){print ip[i],"\t",i}}' | sort -n
如果是無序的沒有規律的格查找ip,可以參考下面這段代碼,可能還有需要優化的地方,像正則就不能夠這樣寫。/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{ s = $0; idx = 1; for (;;) {idx = match(s, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/, a); if (idx == 0) {break;} seg[a[0]]++; s = substr(s, idx + 1);} }
END {
for (i in seg) {
print i"\t"seg[i];
}
}
Notice:對于量小的log以上的方法都可以,但是涉及到真的大的log,就會需要考慮其它的方式了。
總結
以上是生活随笔為你收集整理的python读取日志统计ip_如何通过命令行统计和排列访问日志里的ip数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恐怖生存游戏《森林》续作《森林之子》即将
- 下一篇: 米哈游创始人之一参与打造:国产独立游戏《