• SHELL脚本编程----netstat练习2-查看和3306端口建立的连接


    描述

    假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:

    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 0.0.0.0:6160            0.0.0.0:*               LISTEN
    tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
    tcp        0      0 172.16.56.200:41856     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:49822     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:49674     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:42316     172.16.34.143:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:44076     172.16.240.74:6379      ESTABLISHED
    tcp        0      0 172.16.56.200:49656     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:58248     100.100.142.4:80        TIME_WAIT
    tcp        0      0 172.16.56.200:50108     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:41944     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:35548     100.100.32.118:80       TIME_WAIT
    tcp        0      0 172.16.56.200:39024     100.100.45.106:443      TIME_WAIT
    tcp        0      0 172.16.56.200:41788     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:58260     100.100.142.4:80        TIME_WAIT
    tcp        0      0 172.16.56.200:41812     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:41854     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:58252     100.100.142.4:80        TIME_WAIT
    tcp        0      0 172.16.56.200:49586     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:41754     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:50466     120.55.222.235:80       TIME_WAIT
    tcp        0      0 172.16.56.200:38514     100.100.142.5:80        TIME_WAIT
    tcp        0      0 172.16.56.200:49832     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:52162     100.100.30.25:80        ESTABLISHED
    tcp        0      0 172.16.56.200:50372     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:50306     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:49600     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:41908     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:60292     100.100.142.1:80        TIME_WAIT
    tcp        0      0 172.16.56.200:37650     100.100.54.133:80       TIME_WAIT
    tcp        0      0 172.16.56.200:41938     172.16.34.144:3306      ESTABLISHED
    tcp        0      0 172.16.56.200:49736     172.16.0.24:3306        ESTABLISHED
    tcp        0      0 172.16.56.200:41890     172.16.34.144:3306      ESTABLISHED
    udp        0      0 127.0.0.1:323           0.0.0.0:*
    udp        0      0 0.0.0.0:45881           0.0.0.0:*
    udp        0      0 127.0.0.53:53           0.0.0.0:*
    udp        0      0 172.16.56.200:68        0.0.0.0:*
    udp6       0      0 ::1:323                 :::*
    raw6       0      0 :::58                   :::*                    7

    现在需要你查看和本机3306端口建立连接并且状态是established的所有IP,按照连接数降序排序。你的脚本应该输出

    10 172.16.0.24

    9 172.16.34.144

    1 172.16.34.143

    具体代码实现:

    1. #!/bin/bash
    2. cat nowcoder.txt | grep "3306" | awk '{if($6=="ESTABLISHED"){print($5)}}' | awk -F ":" '{print($1)}' | sort | uniq -c | sort -rn | awk '{print($1 " " $2)}'

    解题思路:

    1.要查看3306端口建立的连接,所以用grep过滤出端口为3306的记录

    2.对记录进行判断,只有状态是established才输出$5(awk的使用)

    3.对输出的$5的记录进行处理,取出IP地址(awk -F 以 ":" 为分隔符,拿出第一个域的值)

    4.对拿出的IP进行去重和逆序排序

    5.最后按题目要求输出

  • 相关阅读:
    7、Jedis测试
    车载测试中:如何处理 bug
    文献阅读-VQAR-基于计算机视觉和自然语言处理的信息检索技术综述
    云小课|MRS基础原理之MapReduce介绍
    Fastjson历史版本记录
    微软二面:既然有 HTTP 协议,为什么还要有 RPC?
    数据结构之二叉树
    DB2 常用命令及SQL语句
    漫谈车辆诊断之DTC的状态位
    LeetCode每日一题02:存在重复元素 (均1200道)
  • 原文地址:https://blog.csdn.net/m0_65237356/article/details/137968156