awk在企业中最常用的语句
awk最常用以及面试基本都会被问到的实例:
A.统计日志中每个URL被访问的次数
cat access.log http://www.etiantian.org/1.html http://post.etiantian.org/1.html http://edu.etiantian.org/1.html http://post.etiantian.org/1.html http://www.etiantian.org/1.html http://edu.etiantian.org/1.html http://www.etiantian.org/1.html awk -F '[/]+' '{print $2}' access.log|sort|uniq -c|sort -r 3 www.etiantian.org 2 post.etiantian.org 2 edu.etiantian.org
B.企业最常用的日志分析语句
awk '{print $1}' access_time.log|sort|uniq -c|sort -rn|head awk '{A[$1]++}END{ for(i in A) {print A[i],i} }' access_time.log|sort|uniq -c|sort -rn|head
C.企业最常用TCP连接数分析语句
netstat -tunla | awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -nr netstat -tunla | awk '/^tcp/ {A[$NF]++} END{ for(i in A) {print A[i],i} }'|sort -rn # 统计ESTABLISHED连接数 netstat -pnta 2>&1|grep 'ESTABLISHED'|awk '{print $5}' | awk -F : '{a[$1]++}END{for(i in a){print i,a[i]}}' 204 127.0.0.1 202 172.16.8.9 2 # 统计tcp的各个状态及数量: netstat -anpt 2>&1|awk '/^tcp/{a[$6]++}END{for(i in a){print i,a[i]}}' SYN_SENT 1 ESTABLISHED 408 LISTEN 40
D.服务器流量暴涨的原因
a.所有服务器流量都上涨,有可能遭到了DDOS攻击;
b.某几台服务器流量上涨,有可能被入侵,中毒了,大量外发流量;
c.网站元素(如图片)被盗链,在门户页面被推广导致大量流量产生,可以压缩文件大小;
d.爬虫抓网站数据;
e.购买了CND业务,CDN猛抓源站.
分析日志,输出格式如下: # [访问次数*单个文件大小] [访问次数] [文件名] 第一个参数也就是文件所占总流量 惯性思维法: awk '{print $7"\t" $10}' access_time.log|sort|uniq -c|awk '{print $1*$3,$1,$2}'|sort -rn|head # 数组法,也称装逼法: awk '{a_num[$7]++;a_size[$7]=a_size[$7]+$10} END{for(k in a_num) {print a_size[k],a_num[k],k} }' access_time.log 两个数组的键是相同的,都是文件名,a_num对应的值是访问次数,a_size对应的值是文件大小.
E.练习,统计所有键的总和
cat wenben.txt a 1 b 3 c 2 d 7 b 5 a 3 g 2 f 6 d 9 awk '{ A[$1]=A[$1]+$2 } END{ for(i in A) {print i,A[i]} }' wenben.txt awk '{ A[$1]+=$2 } END{ for(i in A) {print i,A[i]} }' wenben.txt a 4 b 8 c 2 d 16 f 6 g 2