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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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语句:使用策略模式优化代码结构