1 获取网络连接数状态
netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
2 统计nginx日志单ip访问请求数排名(一般单个IP访问数量过百,就值得怀疑了,如果短时间内上万PV访问,说明就不正常了,可以采取相应的处理手段。)
第一种方法:
awk '{++S[$1]} END {for(a in S) print a,S[a]}' jlc.access.log|sort -rn -k2|head
第二种方法:
awk '{print $1}' jlc.access.log |sort|uniq -c|sort -rn|head
第三种方法:
sed 's/- .*//g' jlc.access.log |sort|uniq -c|sort -rn -k1|head
3 取出linux中eth0的IP地址
第一种方法:
ip a|grep eth0|grep inet|awk '{print $2}'|awk -F / '{print $1}'
第二种方法:
ifconfig eth0|grep 'inet addr'|awk '{print $2}'|awk -F : '{print $2}'
第三种方法:
ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}'
第四种方法:
ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $4}'
4 统计服务器当前单IP连接数最大的IP地址前十
第一种方法:
awk -F '[ :]+' '{++S[$6]} END {for(a in S) print a, S[a]}' netstat.log |sort -rn -k2|grep -Ev "Foreign"|head
第二种方法:
netstat -an|grep ES|awk -F '[ :]+' '{++S[$6]} END {for(a in S) print a, S[a]}'|sort -rn -k2|head
5 将域名取出并根据域名进行计数排序处理
[root@zabbix-server tmp]# more a.txt
http://www.jlcd.org/index.html
http://www.jlcd.org/1.html
http://post.jlcd.org/index.html
http://mp3.jlcd.org/index.html
http://www.jlcd.org/3.html
http://post.jlcd.org/2.html
第一种方法:
[root@zabbix-server tmp]# awk -F '[/:]+' '{print $2}' a.txt |sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第二种方法:
[root@zabbix-server tmp]# cut -d '/' -f 3 a.txt|sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第三种方法:
[root@zabbix-server tmp]# awk -F / '{print $3}' a.txt |sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第四种方法:
[root@zabbix-server tmp]# sed 's/^htt.*\/\///g' a.txt |awk -F / '{print $1}'|sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第五种方法:
[root@zabbix-server tmp]# sed 's/htt.*\/\///g' a.txt |sed 's/\/.*html$//g'|sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第六种方法:
[root@zabbix-server tmp]# cat a.txt |tr \/ '\n'|grep jlcd|sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第七种方法:(sed+完全正则匹配)
[root@zabbix-server tmp]# sed 's#^.*//\(.*jlcd.*\)/.*html#\1#g' a.txt|sort|uniq -c
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第八种方法:
[root@zabbix-server tmp]# sed -r 's#^.*//(.*jlcd.*)/.*html#\1#g' a.txt|sort|uniq -c #sed -r 使用扩展正则表达式 不需要转义了 可以sed --help查看
1 mp3.jlcd.org
2 post.jlcd.org
3 www.jlcd.org
第九种方法:(awk数组)
[root@zabbix-server tmp]# cut -d '/' -f 3 a.txt |awk '{++S[$1]} END {for (a in S) print a,S[a]}'
mp3.jlcd.org 1
post.jlcd.org 2
www.jlcd.org 3
第十种方法:(利用AWK数组综合解决方法)
[root@zabbix-server tmp]# awk -F / '{++S[$3]} END {for (a in S) print a,S[a]}' a.txt
mp3.jlcd.org 1
post.jlcd.org 2
www.jlcd.org 3