• 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.最后按题目要求输出

  • 相关阅读:
    磁饱和的产生原因和影响;磁化强度H和磁感应强度B
    代码随想录Day02 数组基础2 leetcode T977有序数组的平方, T209 长度最小的子数组,T59 螺旋矩阵II
    java面试(八)
    5.1 Ajax数据爬取之初介绍
    PowerBI工作区连接Log Aanlytics
    论文阅读-Detecting and Recovering Sequential DeepFake Manipulation(SeqFakeFormer)
    【IEEE会议】第四届IEEE信息科学与教育国际学术会议(ICISE-IE 2023)
    电子电路设计基本概念100问(六)【学习目标:原理图、PCB、阻抗设计、电子设计基本原则、基本原器件等】
    配置LVS_DR模式以及nginx负载均衡
    输入/输出的实用性-SOLIDWORKS 2024新功能
  • 原文地址:https://blog.csdn.net/m0_65237356/article/details/137968156