【tcp】服务器上tcp连接状态json形式输出

该脚本用于统计Linux系统的TCP连接状态,包括UNKNOWN、ESTABLISHED、SYN_SENT等状态,并输出为JSON格式。脚本通过读取/proc/net/tcp和/proc/net/tcp6文件,进行数据处理和格式转换,最终展示各状态的连接数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

print_tcp_conection.sh

#!/bin/bash

STATS=(UNKNOWN:0 ESTABLISHED:0 SYN_SENT:0 SYN_RECV:0 FIN_WAIT1:0 FIN_WAIT2:0 TIME_WAIT:0 CLOSED:0 CLOSE_WAIT:0 LAST_ACK:0 LISTEN:0 CLOSING:0)
CONN="$(awk '{print $4}' /proc/net/tcp /proc/net/tcp6 | grep -v st | sort | uniq -c | sed -e s/' 0'/' '/g -e s/'A'/'10'/g -e s/'B'/'11'/g | awk '{print $2":"$1}')"

if [ ! -z "$CONN" ];then
  for s in $CONN
  do
    STATS[${s%%:*}]=${STATS[${s%%:*}]%%:*}":"${s#*:}
  done
fi

echo ${STATS[@]} | sed -e s/' '/',"'/g -e s/':'/'":'/g -e s/^/'{"tcp_conn":{"'/g -e s/'WAIT_'/'WAIT'/g -e s/'$'/'}}'/g

# sh print_tcp_conection.sh

{"tcp_conn":{"UNKNOWN":0,"ESTABLISHED":4,"SYN_SENT":0,"SYN_RECV":0,"FIN_WAIT1":0,"FIN_WAIT2":0,"TIME_WAIT":0,"CLOSED":0,"CLOSE_WAIT":0,"LAST_ACK":0,"LISTEN":6,"CLOSING":0}}

# sh print_tcp_conection.sh | python -m json.tool

{
    "tcp_conn": {
        "CLOSED": 0,
        "CLOSE_WAIT": 0,
        "CLOSING": 0,
        "ESTABLISHED": 4,
        "FIN_WAIT1": 0,
        "FIN_WAIT2": 0,
        "LAST_ACK": 0,
        "LISTEN": 6,
        "SYN_RECV": 0,
        "SYN_SENT": 0,
        "TIME_WAIT": 0,
        "UNKNOWN": 0
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值