bash脚本,流量监控
TIME 2023-05-10 20:01
需求
监控系统 eth0 网卡的出站和进站流量,流量单位以 M 为单位
每秒输出一次结果,前面分别加上当前系统的“日期”“周几”“时间”
在屏幕上输出结果
监控系统 eth0 网卡的出站和进站流量,流量单位以 M 为单位
每秒输出一次结果,前面分别加上当前系统的“日期”“周几”“时间”
在屏幕上输出结果
创建名为“流量监控”的 bash 脚本
vi 流量监控.sh
粘贴以下代码
#!/bin/bash while true; do # 获取当前时间、出网流量和入网流量 date=$(date "+%Y-%m-%d") day_of_week=$(date "+%u") case $day_of_week in "1") day_of_week="周一" ;; "2") day_of_week="周二" ;; "3") day_of_week="周三" ;; "4") day_of_week="周四" ;; "5") day_of_week="周五" ;; "6") day_of_week="周六" ;; "7") day_of_week="周日" ;; esac system_time=$(date "+%H:%M:%S") out_bytes=$(cat /sys/class/net/eth0/statistics/tx_bytes) in_bytes=$(cat /sys/class/net/eth0/statistics/rx_bytes) # 等待1秒钟,并获取新的出网流量和入网流量 sleep 1 out_bytes_new=$(cat /sys/class/net/eth0/statistics/tx_bytes) in_bytes_new=$(cat /sys/class/net/eth0/statistics/rx_bytes) # 计算出网速度,单位为M out_speed=$(echo "scale=3; ($out_bytes_new - $out_bytes) / 1000000" | bc) if (( $(echo "$out_speed < 1" | bc -l) )); then out_speed=$(printf '%.3f' $out_speed) fi # 计算入网速度,单位为M in_speed=$(echo "scale=3; ($in_bytes_new - $in_bytes) / 1000000" | bc) if (( $(echo "$in_speed < 1" | bc -l) )); then in_speed=$(printf '%.3f' $in_speed) fi # 在屏幕上输出监控情况 echo "$date $day_of_week $system_time 出站数据: $out_speed M, 进站数据: $in_speed M" done
赋予流量监控脚本“流量监控.sh”可执行权限
chmod +x
运行流量监控脚本“流量监控.sh”
./流量监控.sh
返回结果示例
2023-05-10 周三 19:47:08 出站数据: 0.006 M, 进站数据: 0.001 M 2023-05-10 周三 19:47:09 出站数据: 9.305 M, 进站数据: 0.721 M 2023-05-10 周三 19:47:10 出站数据: 14.297 M, 进站数据: 1.050 M 2023-05-10 周三 19:47:11 出站数据: 13.329 M, 进站数据: 0.979 M 2023-05-10 周三 19:47:12 出站数据: 13.975 M, 进站数据: 1.005 M
点击数:14