linux显示单个tcp连接速度脚本

来源:互联网 发布:linux命令返回上一级 编辑:程序博客网 时间:2024/05/12 06:38

 

 

#!/bin/sh

 

if [ $# != 1 ]

then echo "脚本需要一个参数/tcp port"

exit 0

fi

 

modprobe ip_nat_ftp

 

while true

do

echo

((cat /proc/net/ip_conntrack | grep sport=$1 | grep ESTABLISHED | gawk -F " " '{print $11,$13,$12,$14,$16}') && sleep 3 && (cat /proc/net/ip_conntrack | grep sport=$1 | grep ESTABLISHED |  gawk -F " " '{print $11,$13,$12,$14,$16}')) | sort -k1 -k2 -k3 -k4  | gawk -F "bytes=" 'BEGIN{last=0}{if (NR%2!=0) {last=$2} else {last=$2-last; if (last < 0) {last=-100} else {last=(last/1024)/3}; print $1, "bytes="last}; ;}END{print "next round..."}'

done

 

 

 

 

这个脚本需要一个传入参数就是tcp端口,默认网卡是eth0,网速是单位:kb/s

原理就是/proc/net/ip_conntrack,ip_conntrack是Linux NAT一个跟踪连接条目的模块记录着允许的跟踪连接条目,ip_conntrack 模块会记录 tcp 通讯协议的 established connection 记录, 而且预设 timeout 时间长达五天 (432,000 秒).

 

这个脚本会隔3秒统计流量然后计算速度 

 

sleep 3  睡眠3秒

last=(last/1024)/3  计算速度

 

 

这个脚本原来也在一个博客上看到的,我引用了一下,不记得原文地址了

原创粉丝点击