1、把IP数量直接输出显示:
cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|wc -l
2、把IP数量输出到文本显示:
cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|wc -l > ip.txt
上面的方法是统计出日志里面所有IP的总数,如果你想去除重复的IP,并查看每个IP在次日志中背记录的次数,可以用如下方法:
egrep -o "(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])" access.log | sort | uniq -c | sort -nr > ip.txt
egrep -o是只显示正则匹配的部分。
sort是排序
uniq -c是显示重复的次数
但这种放吧比较占服务器的硬件资源,请慎用
发表评论