页首自改代码

Hey, Nice to meet You.  why ?

☆☆☆所谓豪杰之士,必有过人之节.人情有所不能忍者,匹夫见辱,拔剑而起,挺身而斗,此不足为勇也,天下有大勇者,猝然临之而不惊,无故加之而不怒.此其所挟持者甚大,而其志甚远也.          
返回顶部

常用统计命令

1.排序并统计相同ip访问次数

# cat access.log |awk '{print $1}'|grep -v "^$"|sort|uniq -c

# awk '{S[$1]++} END{for (i in S) print S[i],i}' access.log

2.统计各种连接状态的数量

# netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'

$NF:表示一行的最后一列;S[$NF]:表示数组元素的值;++S[$NF]:表示对某个数加一

3.统计总访问量

# cat access.log |awk '{print $1}'|sort|uniq -c|awk 'BEGIN{sum=0} {sum+=$1} END{print "PV is",sum}'

4.统计输出格式:[访问次数*单个文件大小]  [访问次数]  [访问的文件]

# awk '{array_num[$7]++;array_size[$7]=array_size[$7]+$10}END{for(i in array_num) print array_size[i],array_num[i],i}' access_2010-12-8.log |sort -rn|head

# awk '{array_num[$7]++;array_size[$7]=array_size[$7]+$10}END{for(i in array_num) print "PV:"array_size[i],"\t""Count:"array_num[i],"\t""File:"i}' access.log |sort -rn|head

# awk '{print $7,$10}' s-access.log |sort|uniq -c|sort -r|awk '{print "PV:"$1*$3,"\t""Count:"$1,"\t""File:"$2}'|sort -rn|head

5.统计/etc/passwd 中各种类型shell的数量

# awk -F: '{shells[$NF]++} END{ for(i in shells){print i,shells[i]} }' /etc/passwd

6.网站访问状态统计 <当前状态 netstat>

# netstat -ant |grep :80 |awk '{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}'

or   

# netstat -ant |grep :80 |awk '{access_stat[$NF]++} END{for(i in access_stat ){print i,access_stat[i]}}' |sort -k2 -n |head

7.统计当前访问的每个IP的数量 <当前状态 netstat>

#netstat -ant |grep :80 |awk -F: '{ip_count[$8]++} END{for(i in ip_count){print i,ip_count[i]} }' |sort

8.统计Apache/Nginx日志中某一天的PV量 <统计日志>

#grep '07/Aug/2012' access.log |wc -l

9.统计Apache/Nginx日志中某一天不同IP的访问量<统计日志>

#grep '07/Aug/2012' access.log |awk '{ips[$1]++} END{for(i in ips){print i,ips[i]} }' |sort -k2 -rn |head

or     

# grep '07/Aug/2012' access.log |awk '{ips[$1]++} END{for(i in ips){print i,ips[i]} }' |awk '$2>100' |sort -k2 -rn

10.统计用户名为4个字符的用户

# awk -F: '$1~/^....$/{count++; print $1} END{print "count is: " count}' /etc/passwd

or      

# awk -F: 'length($1)==4{count++; print $1} END{print "count is: "count}' /etc/passwd

11.删除配置文件中#号注释行

# sed -r -i '/^#/d' file.conf 

12.删除无内容空行

# sed -r '/^$/d' file.conf 

posted on 2017-11-13 13:44  罗穆瑞  阅读(384)  评论(0编辑  收藏  举报

导航