常用统计命令

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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.

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 

-------------------------------------------------------------

作者: 罗穆瑞

转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢!

------------------------------------------------------------------------------

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

------------------------------------------------------------------------------

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
监控 Linux
|
6月前
|
移动开发 Linux Windows
【Linux专题_05】wc -l 命令统计行数为何不准
【Linux专题_05】wc -l 命令统计行数为何不准
194 3
|
Unix
统计命令汇总
统计命令汇总
64 0
|
SQL JSON 数据格式
一日一技:如何统计有多少人安装了 GNE?
一日一技:如何统计有多少人安装了 GNE?
110 0
|
SQL Go 索引
|
SQL 存储 缓存