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

  • 相关阅读:
    http/https服务器实现
    基于R语言piecewiseSEM结构方程模型在生态环境领域技术教程
    【MySQL】MySQL的增删查改(进阶)
    iOS(Object C) 冒泡排序
    使用 oh-my-posh 美化 windows terminal,让其接近oh-my-zsh
    Altium Designer 手机设计之PCB布局 - 系列三
    剑指offer 76 删除链表中重复的点
    RFSoC应用笔记 - RF数据转换器 -21- API使用指南之配置ADC相关工作状态
    二十五、商城 - 运营商后台审核上下架-注解式事务配置(13)
    [Games 101] Lecture 13-16 Ray Tracing
  • 原文地址:https://blog.csdn.net/m0_65237356/article/details/137968156