• 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"	" $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
    
  • 相关阅读:
    maven笔记
    enum笔记
    mysql笔记
    git笔记
    spark笔记
    使用GitHub进行团队合作
    深度学习网站
    顶级论文索引网站
    研究生-数学建模集
    算法练习网站
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/10281783.html
Copyright © 2020-2023  润新知