linux16:网络信息收集脚本练习:按照状态筛选tcp连接,筛选链接数量top10的端口号

要求

1.筛选出tcp地址,按照状态进行计数,分类展示

  • time_wait
  • established

2.按照同一个端口号连接的ip数量进行从高到低排序列出top10

3.输出top10端口对应的远程ip地址;端口之间以分割线分割,IP地址之间以逗号分割


解答

#!/bin/bash
#name:/tmp/daxiong/netlook.sh

echo ""
date
echo ""

echo "-----------------------------------------------------------"
echo "PART 1"
echo ""
#状态为TIME_WAIT的连接数量
declare -i tw=$(netstat -ant |grep -w tcp|grep -w TIME_WAIT|wc -l)
#状态为ESTABLISHED的连接数量
declare -i est=$(netstat -ant |grep -w tcp|grep -w ESTABLISHED|wc -l)
echo "TIME_WAIT_num=${tw}"      
echo "ESTABLISHED_num=${est}"
echo ""
#筛选出tcp连接的,且状态为TIME_WAIT的连接
netstat -ant |grep -w tcp|grep -w TIME_WAIT
echo ""
#筛选出tcp连接的,且状态为ESTABLISHED的连接
netstat -ant |grep -w tcp|grep -w ESTABLISHED


echo "-----------------------------------------------------------"
echo "PART 2 "
echo ""
#列出网络情况|从第三行开始显示|分割出第四字段|分割出第二块(端口号)|去除空行|排序|去重并计数|取前10|再次排序,按字段一(链接数量),-r表示逆序(默认是升序)
netstat -ant |awk 'NR>2' |awk '{print $4}'|cut -d ':' -f 2|grep -v '^$'|sort|uniq -c|head -n 10| sort -k 1 -r
echo ""


echo "-----------------------------------------------------------"
echo "PART 3 "
echo ""
#列出网络情况|从第三行开始显示|分割出第四字段|分割出第二块(端口号)|去除空行|排序|去重并计数|取前10|再次排序|分割出第二字段(排序后的端口号)
netstat -ant |awk 'NR>2' |awk '{print $4}'|cut -d ':' -f 2|grep -v '^$'|sort|uniq -c|head -n 10|sort -k 1 -r | awk '{print $2}'>/tmp/port.txt

#用for循环依次按行读出,并查询对应端口号的ip地址列出来
for line in $(cat /tmp/port.txt)
do
echo ""
echo  "=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+"
echo "Port: $line"
#列出网络情况|按照端口号抓取行|分割出第五字段(外域地址)|分割出第一块(外机ip)|去除空行|排序|去重|将换行符转换为逗号
netstat -ant |grep $line|awk '{print $5}'|cut -d ':' -f 1|grep -v '^$'|sort|uniq|tr "\n" ","
done

脚本问题分析:

1.指令过长,需要精简指令

2.在part1展示时,内容过度,建议设计交互式菜单

3.能力提升
shell属于初级脚本
后期可以尝试学习python,perl等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fortunate.F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值