监控linux流量shell版
2023-09-27 14:26:52 时间
想要实时查看linux流量情况,又不想再去下第三方工具,可以直接写脚步运行!
系统:centos 6.5
原理:从/proc/net/dev中获取到流量情况,再通过换算并除以间隔时间来得到流量单位M
#------------------ #Author:Administrator #Created:2015-04-10 #------------------ #!/bin/bash #使用方法 usage() { echo "useage: $0 ethname intervel" exit 0 } #网口配置 if [ $# -gt 1 ];then ethname=$1 num=`ifconfig|grep ${ethname}|wc -l` if [ $num -gt 0 ];then ethname=$1 else echo "Can't find $ethname,Please Check" exit 1 fi fi #时间配置 intervel=1 if [ $# -gt 0 ]; then interval=$2 test=`expr "$interval" \* 0` if [ "$test" != "0" ]; then echo "Invalid <interval> param '$interval' . It should be a integer number. Usage: $0 ethname intervel" exit -1 fi if [ $interval -lt 1 ]; then echo "Invalid <interval> param '$interval' . It should be > 0 (seconds). Usage: $0 ethname intervel" exit -1 fi fi #函数判断 if [ $# -ne 2 ] then usage fi echo "$0 is starting,Device is $1,Intervel is $2" echo -e "\n" typeset Rev old_Rev eth=$1 intervel=$2 old_Rev=`cat /proc/net/dev|grep $eth| awk '{print $1}'| awk -F : '{print $2}'` old_Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'` #echo "old_Rev is $old_Rev" #echo "Old_send is $old_Send" while true do sleep $intervel Rev=`cat /proc/net/dev|grep $eth|awk '{print $1}'|awk -F : '{print $2}'` Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'` #echo "Rev is $Rev" #echo "Send is $Send" diff_1=`awk -v Rev=$Rev -v old_Rev=$old_Rev -v intervel=$intervel 'BEGIN{printf "Receive is %6.2f", ( Rev - old_Rev ) / 1024 / 1024 / intervel * 8}'` diff_2=`awk -v Send=$Send -v old_Send=$old_Send -v intervel=$intervel 'BEGIN{printf "Send is %6.2f", ( Send - old_Send ) / 1024 / 1024 / intervel * 8}'` echo "`date +'%Y-%m-%d %H:%M:%S'` Speed: IN ${diff_1} mbps OUT ${diff_2} mbps" old_Rev=$Rev old_Send=$Send done
效果如下:
[root@localhost tools]# ./bandwidth.sh eth0 1 ./bandwith.sh is starting,Device is eth0,Intervel is 1 Ctrl+C To Stop! 2015-11-13 16:49:34 Speed: IN Receive is 0.02 mbps OUT Send is 0.01 mbps 2015-11-13 16:49:35 Speed: IN Receive is 0.01 mbps OUT Send is 0.00 mbps 2015-11-13 16:49:36 Speed: IN Receive is 0.01 mbps OUT Send is 0.00 mbps
在centos 7中,/proc/net/dev显示与centos 6有点差距,所以如果在centos 7中使用,需要将以下两个地方更改:
old_Rev=`cat /proc/net/dev|grep $eth| awk '{print $2}'` old_Send=`cat /proc/net/dev|grep $eth|awk '{print $10}'` #--------------------------------------------------------------------- Rev=`cat /proc/net/dev|grep $eth| awk '{print $2}'` Send=`cat /proc/net/dev|grep $eth|awk '{print $10}'`
如使用有问题,请联系:
362299908@qq.com
相关文章
- linux服务器管理神器cockpit安装监控cpu内存等等
- Linux流量监控工具 - iftop (最全面的iftop教程),查看服务器的网络情况
- 【Qt开发】【Linux开发】调试记录:QFontDatabase::loadFromCache Error
- Linux:关闭普通用户的sudo密码请求【[sudo] password for wyr: 】
- linux系统日常维护常用命令
- Linux下系统如何监控服务器硬件、操作系统、应用服务和业务
- 使用Nmon监控Linux的系统性能
- Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)
- Linux系统资源监控命令简介
- Linux 25年发展历史带给我们的9项启示
- Linux下Java线程具体监控和其dump的分析使用----分析Java性能瓶颈[张振华-Jack]
- 如何使用Nmon监控Linux系统性能
- Linux设备驱动开发详解-Note(5)---Linux 内核及内核编程(1)
- Linux 监控文件被什么进程修改
- 【精】Linux磁盘I/O性能监控之iostat详解
- Linux 内核中断内幕
- linux驱动杂项
- Linux:less 命令
- 【JVM】jconsole远程监控linux上的java进程
- Linux rsync命令详解
- Nacos安装指南Windows和Linux(版本1.4.1和2.0.2)
- linux kernel中的cmdline的详细介绍
- 使用nrpe监控管理远程linux主机
- zabbix3.2监控linux内存
- cacti监控linux和windows磁盘IO
- Linux 性能监控、测试、优化工具
- linux 网络流量监控工具iftop
- Linux C 使用 inotify 监控文件或目录变化
- Linux下通过ioctl系统调用来获取和设置网络信息
- 【Linux资源管理】iotop命令监控磁盘使用情况
- 重置密码解决MySQL for Linux
- 修改linux最大文件句柄数
- Linux SPI 驱动
- Linux内核虚拟内存管理之匿名映射缺页异常分析
- 虚拟机中如何安装Arch Linux操作系统
- Linux监控利器atop,安装,配置日志切割,网络监控netatop