需要统计网卡流量,除了依赖其他第三方的统计外,只能自己写了,原因你懂吧?:),因为生产环境没办法啊,只能自己写啊,悲催哇。
这个是统计packets的信息,可能1和9会更准一些,不过我也不清楚了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/bash eth=$1 mkdir -p /home/tmsp while [ "1" ] RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 do RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') ctime=$(date "+%Y-%m-%d %H:%M:%S") RX=$((${RXnext}-${RXpre})) TX=$((${TXnext}-${TXpre})) echo "$ctime|RX:$RX|TX:$TX|TRX:$RXnext|TTX:$TXnext" >> /home/tmsp/$1.log sleep 1 done |
这个是简单的记录信息,那么需要后续的工作还很多,比如脚本切割,比如话单入库等等,后续完善吧。
PS:最后补充如何运行,如果你保存为 nic.sh 先给执行权限chmod +x nic.sh 然后运行,./nic.sh eth0 参数是你想要监控的网卡信息。
不足之处,不能监控到具体的端口,目前迷惘中。欢迎指点。