zoukankan      html  css  js  c++  java
  • Linux常用命令

    awk命令&排查tcp状态:

    netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'
    LAST_ACK 14
    SYN_RECV 348
    ESTABLISHED 70
    FIN_WAIT1 229
    FIN_WAIT2 30
    CLOSING 33
    TIME_WAIT 18122

    命令解释:

    先来看看netstat:
    netstat -n
    Active Internet connections (w/o servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 123.123.123.123:80 234.234.234.234:12345 TIME_WAIT
    你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。
    
    再来看看awk:
    /^tcp/
    滤出tcp开头的记录,屏蔽udp, socket等无关记录。
    state[]相当于定义了一个名叫state的数组
    NF
    表示记录的字段数,如上所示的记录,NF等于6
    $NF
    表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT
    state[$NF]表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数
    ++state[$NF]表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一
    END
    表示在最后阶段要执行的命令
    for(key in state)
    遍历数组
  • 相关阅读:
    Python day43 :pymysql模块/查询,插入,删除操作/SQL注入完全问题/事务/模拟登录注册服务器/视图/函数/存储过程
    docker
    Linux 05
    Linux04
    Linux 03
    Linux 02
    go语言
    go语言
    go语言
    Linux
  • 原文地址:https://www.cnblogs.com/binnzhao/p/11399895.html
Copyright © 2011-2022 走看看