随笔 - 633,  文章 - 0,  评论 - 13,  阅读 - 48万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.使用netstat查看tcp命令:

  netstat -an | grep ^tcp    :获取以tcp开头的数据

2.使用ss查看tcp命令:

  ss -an | grep ^tcp  :获取以tcp开头的数据

3. netstat -an | grep ^tcp  | head -1   :获取以tcp开头的数据且打印第一行

4. ss -an | grep ^tcp  | head -1   :获取以tcp开头的数据且打印第一行

5.ss获取tcp连接状态(人工查看)命令:

  ss -an |grep ^tcp  |awk '{tcp_connect_status[$2]++} END{for(i in tcp_connect_status) {print i,tcp_connect_status[i]}}'

 

6编写结合zabbix的文件

  vim zabbix_tcp_connect_status.sh

 

#!/bin/bash 
LISTEN(){ 
        ss -an|grep "^tcp" |grep "LISTEN"|wc -l   #使用ss命令获取以tcp开头的内容且包含LISTEN 的行数
} 
 
$1  #位置变量,传入值,调用相应的函数

  :wq!  :保存

  chmod a+x zabbix_tcp_connect_status.sh  :赋可执行权限

  ./zabbix_tcp_connect_status.sh LISTEN :调用函数LISTEN

 

7.获取tcp所有(11中)状态的脚本

复制代码
#!/bin/bash

CLOSED(){ 
        ss -an|grep "^tcp" |grep "CLOSED"|wc -l   
}
    

LISTEN(){ 
        ss -an|grep "^tcp" |grep "LISTEN"|wc -l   
}
    

SYN_RCVD(){ 
        ss -an|grep "^tcp" |grep "SYN[-_]RCVD"|wc -l  #[-_]表示匹配一个_或者一个-
}
    

SYN_SENT(){ 
        ss -an|grep "^tcp" |grep "SYN[-_]SENT"|wc -l   
}
    

ESTABLISHED(){ 
        ss -an|grep "^tcp" |grep "ESTAB"|wc -l   
}
    

FIN_WAIT_1(){ 
        ss -an|grep "^tcp" |grep "FIN[-_]WAIT[-_]1"|wc -l  
}
    

FIN_WAIT_2(){ 
        ss -an|grep "^tcp" |grep "FIN[-_]WAIT[-_]2"|wc -l   
}
    

TIME_WAIT(){ 
        ss -an|grep "^tcp" |grep "TIME[-_]WAIT"|wc -l   
}
    

CLOSING(){ 
        ss -an|grep "^tcp" |grep "CLOSING"|wc -l   
}
    

CLOSE_WAIT(){ 
        ss -an|grep "^tcp" |grep "CLOSE[-_]WAIT"|wc -l   
}
    

LAST_ACK(){ 
        ss -an|grep "^tcp" |grep "LAST[-_]ACK"|wc -l   
}

$1
复制代码

 

  

 

posted on   大话人生  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示