EveryDay-Shell之"ifconfig输出详解“——netspeed.sh网速监控脚本
来源:互联网 发布:inline 在c语言中 编辑:程序博客网 时间:2024/05/21 18:44
对应文件中,比如p1p1设备对应目录:
根据这些文件存储的数据,可以设计一个监控网速的shell脚本:
执行结果:
$cd /sys/class/net/p1p1/statistics
$ls -l
-r--r--r-- 1 root root 4096 2月 4 14:35 collisions
-r--r--r-- 1 root root 4096 2月 4 14:35 multicast
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_bytes
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_compressed
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_crc_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_dropped
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_fifo_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_frame_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_length_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_missed_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_over_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_packets
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_aborted_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_bytes
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_carrier_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_compressed
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_dropped
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_fifo_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_heartbeat_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_packets
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_window_errors
$cat rx_bytes(接收总数据大小B为单位,即下行)
226698240
$cat tx_bytes(发送总数据打包B为单位,即上行)
10534137
$ls -l
-r--r--r-- 1 root root 4096 2月 4 14:35 collisions
-r--r--r-- 1 root root 4096 2月 4 14:35 multicast
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_bytes
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_compressed
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_crc_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_dropped
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_fifo_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_frame_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_length_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_missed_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_over_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 rx_packets
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_aborted_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_bytes
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_carrier_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_compressed
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_dropped
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_fifo_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_heartbeat_errors
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_packets
-r--r--r-- 1 root root 4096 2月 4 14:35 tx_window_errors
$cat rx_bytes(接收总数据大小B为单位,即下行)
226698240
$cat tx_bytes(发送总数据打包B为单位,即上行)
10534137
根据这些文件存储的数据,可以设计一个监控网速的shell脚本:
#!/usr/bin/env bash
# Program: netspeed.sh
# Author: LeslieChu
# Date: 2012-02-04
# Version: 1.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
if [ -z "$1" ];
then
echo
echo "Usage: $0 eth0";
exit 1
fi
while true;
do
R_1=`cat /sys/class/net/$1/statistics/rx_bytes`;
T_1=`cat /sys/class/net/$1/statistics/tx_bytes`;
sleep 1;
R_2=`cat /sys/class/net/$1/statistics/rx_bytes`;
T_2=`cat /sys/class/net/$1/statistics/tx_bytes`;
R_Byte_PerSec=$(expr $R_2 - $R_1);
T_Byte_PerSec=$(expr $T_2 - $T_1);
R_KB_PerSec=$(expr ${R_Byte_PerSec} / 1024); #记得“/”左右需要空格,否则无效
T_KB_PerSec=$(expr ${T_Byte_PerSec} / 1024);
R_MB_PerSec=$(expr ${R_KB_PerSec} / 1024);
T_MB_PerSec=$(expr ${T_KB_PerSec} / 1024);
echo -en "$1->\tTX:\t${T_KB_PerSec} KB/s, \t${T_MB_PerSec}MB/s; "
echo -e " \tRX:\t${R_KB_PerSec}KB/s, \t${R_MB_PerSec}MB/s."
done
# Program: netspeed.sh
# Author: LeslieChu
# Date: 2012-02-04
# Version: 1.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
if [ -z "$1" ];
then
echo
echo "Usage: $0 eth0";
exit 1
fi
while true;
do
R_1=`cat /sys/class/net/$1/statistics/rx_bytes`;
T_1=`cat /sys/class/net/$1/statistics/tx_bytes`;
sleep 1;
R_2=`cat /sys/class/net/$1/statistics/rx_bytes`;
T_2=`cat /sys/class/net/$1/statistics/tx_bytes`;
R_Byte_PerSec=$(expr $R_2 - $R_1);
T_Byte_PerSec=$(expr $T_2 - $T_1);
R_KB_PerSec=$(expr ${R_Byte_PerSec} / 1024); #记得“/”左右需要空格,否则无效
T_KB_PerSec=$(expr ${T_Byte_PerSec} / 1024);
R_MB_PerSec=$(expr ${R_KB_PerSec} / 1024);
T_MB_PerSec=$(expr ${T_KB_PerSec} / 1024);
echo -en "$1->\tTX:\t${T_KB_PerSec} KB/s, \t${T_MB_PerSec}MB/s; "
echo -e " \tRX:\t${R_KB_PerSec}KB/s, \t${R_MB_PerSec}MB/s."
done
执行结果:
$./netspeed.sh
Usage: ./netspeed.sh eth0
Usage: ./netspeed.sh eth0
$./netspeed.sh p1p1
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 3 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 8 KB/s, 0MB/s; RX: 20KB/s, 0MB/s.
p1p1-> TX: 10 KB/s, 0MB/s; RX: 21KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 5 KB/s, 0MB/s; RX: 1KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 3KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 1KB/s, 0MB/s.
^C
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 3 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 8 KB/s, 0MB/s; RX: 20KB/s, 0MB/s.
p1p1-> TX: 10 KB/s, 0MB/s; RX: 21KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 5 KB/s, 0MB/s; RX: 1KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 0KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 3KB/s, 0MB/s.
p1p1-> TX: 0 KB/s, 0MB/s; RX: 1KB/s, 0MB/s.
^C
0 0
- EveryDay-Shell之"ifconfig输出详解“——netspeed.sh网速监控脚本
- 服务器网速实时监控(shell脚本)
- linux下shell 网速监控脚本
- NetSpeed--网速检测
- Shell脚本编程——监控系统内存之free
- Shell脚本编程——监控进程内存之pmap
- shell脚本——linux主机监控
- shell监控脚本实例—监控mysql主从复制
- sh脚本监控网站状态
- shell小脚本--网速监控
- Ubuntn shell脚本之磁盘流量监控
- android实例之——流量监控悬浮窗(实时网速的获取)
- android实例之——流量监控悬浮窗(实时网速的获取)
- linux_reboot.sh 的shell脚本
- spark-shell.sh脚本分析
- Shell脚本之awk详解
- Shell脚本之sed详解
- Shell脚本之awk详解
- Problem 1031 - 走楼梯
- /proc/net/dev文件和/sys/class/net/eth1/statistics/*文件
- 调用Ping 命令及返回值,跨平台
- 文件上传利器SWFUpload使用指南
- 自动控制原理学习总结
- EveryDay-Shell之"ifconfig输出详解“——netspeed.sh网速监控脚本
- 维护代码的一些感受
- 工作说明书SOW(Statement Of Work)
- Java集合类相关概念
- 基于Windows的Maven的安装及配置
- MYSQL利用Navicat对含有Bold字段表进行导入导出
- 手工创建快照及awr相关配置说明
- [HTTP权威指南读书笔记]第三章—HTTP报文
- 算法分析学习笔记(二) - 栈和队列(下)