LINUX服务器流量监控脚本(网络流量)

例子,在centos测试


先看测试后的效果

 

代码

# vi /etc/rc.d/traffic_monitor.sh

----------------------------------------------

#!/bin/bash

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin;

export PATH

function traffic_monitor {

   OS_NAME=$(sed -n '1p' /etc/issue)
   

   while [ "1" ]

   do

     # 网口名

     eth=$1

     # 状态

     STATUS="fine"

     # 获取当前时刻网口接收与发送的流量

     RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')

     # 判断获取值若为空,则网口不存在

     if [[ $RXpre == "" ]]; then

       echo "Error parameter,please input the right port after run the script!"

       exit 0

     fi

     TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')

 

     # 获取1秒后网口接收与发送的流量

     sleep 1

     RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')

     TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')

     clear

     # 获取这1秒钟实际的进出流量

     RX=$((${RXnext}-${RXpre}))

     TX=$((${TXnext}-${TXpre}))

     # 判断接收流量如果大于MB数量级则显示MB单位,否则显示KB数量级

     if [[ $RX -lt 1024 ]];then

       RX="${RX}B/s"

     elif [[ $RX -gt 1048576 ]];then

       RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')

       $STATUS="busy"

     else

       RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')

     fi

     # 判断发送流量如果大于MB数量级则显示MB单位,否则显示KB数量级

     if [[ $TX -lt 1024 ]];then

       TX="${TX}B/s"

       elif [[ $TX -gt 1048576 ]];then

       TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')

     else

       TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')

     fi

     # 打印信息

     echo -e "==================================="

     echo -e "Welcome to Traffic_Monitor stage"

     echo -e "version 1.0"

     echo -e "Since 2014.2.26"

     echo -e "Created by showerlee"

     echo -e "BLOG: http://www.111cn.net

 代码如下 复制代码

"

     echo -e "==================================="

     echo -e "System: $OS_NAME"

     echo -e "Date:   `date +%F`"

     echo -e "Time:   `date +%k:%M:%S`"

     echo -e "Port:   $1"

     echo -e "Status: $STATUS"

     echo -e  " t     RX tTX"

     echo "------------------------------"

     # 打印实时流量

     echo -e "$eth t $RX   $TX "

     echo "------------------------------"

     # 退出信息

     echo -e "Press 'Ctrl+C' to exit"

   done

}

# 判断执行参数

if [[ -n "$1" ]];then

   # 执行函数

   traffic_monitor $1

else

   echo -e "None parameter,please add system netport after run the script! nExample: 'sh traffic_monitor eth0'"

fi

----------------------------------------------

# sh traffic_monitor.sh eth0

看一段只针对网络的

 代码如下 复制代码

#!/bin/bash

if [ -n "$1" ]; then
eth_name=$1
else
eth_name="eth0"
fi

i=0

send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
send_n=$send_o
recv_n=$recv_o

while [ $i -le 100000 ]; do
send_l=$send_n
recv_l=$recv_n
sleep 1
send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
i=`expr $i + 1`
send_r=`expr $send_n - $send_l`
recv_r=`expr $recv_n - $recv_l`
total_r=`expr $send_r + $recv_r`
send_ra=`expr ( $send_n - $send_o ) / $i`
recv_ra=`expr ( $recv_n - $recv_o ) / $i`
total_ra=`expr $send_ra + $recv_ra`
sendn=`ifconfig $eth_name | grep bytes | awk -F ( '{print $3}' | awk -F ) '{print $1}'`
recvn=`ifconfig $eth_name | grep bytes | awk -F ( '{print $2}' | awk -F ) '{print $1}'`
clear
echo "Last second : Send rate: $send_r Bytes/sec Recv rate: $recv_r Bytes/sec Total rate: $total_r Bytes/sec"
echo "Average value: Send rate: $send_ra Bytes/sec Recv rate: $recv_ra Bytes/sec Total rate: $total_ra Bytes/sec"
echo "Total traffic after startup: Send traffic: $sendn Recv traffic: $recvn"
done

时间: 2024-10-31 01:35:31

LINUX服务器流量监控脚本(网络流量)的相关文章

linux中mrtg监控juniper防火墙流量配置

 一.juniper开启SNMP 这里开启SNMP的步骤和昨天提到配置方法一样,这里略过. 二.安装配置mrtg 1.安装 mrtg的官方页面为http://oss.oetiker.ch/mrtg/ ,最新版本是2.17.4 .可以选择使用源码包编译安装,也可以选择系统源安装 .  代码如下 复制代码 #yum -y install mrtg mrtg-libs 需要注意的是mrtg也有windows版的,由于个人习惯了使用linux这里仍以centos/redhat为例. 2.cfgmaker

linux服务器使用iftop查看带宽流量IP

20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送) 国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.   Linux下使用iftop工具结合iptables服务来解决带宽资源被恶意请求满的问题,主要通过2个步骤来实现: 1.  使用iftop工具查出来是哪些个IP地址在请求主机的带宽资源,找出耗带

Linux服务器上监控网络带宽的18个常用命令

本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带宽.这样一来,用户很容易发现过度使用网络带宽的某个进程. 这些工具使用不同的机制来制作流量报告.nload等一些工具可以读取"proc/net/dev"文件,以获得流量统计信息;而一些工具使用pcap库来捕获所有数据包,然后计算总数据量,从而估计流量负载. 下面是按功能划分的命令名称. 监

分享个简易版Linux服务器初始化Shell脚本

该Shell脚本主要用于新安装Linux服务器系统的初始化工作,包括关闭IPv6模块,关闭SELinux,让vim显示颜色,设置系统语言编码,优化系统服务,内核参数优化等   该Shell脚本主要用于新安装Linux服务器系统的初始化工作,具体包括: 关闭IPv6模块 关闭SELinux 让vim显示颜色 设置系统语言编码 优化系统服务 内核参数优化等. 可以根据自己的实际情况修改,可用于生产环境.原作者是NetSeek,本人做了部分修改. 复制代码 代码如下: #!/bin/sh # desc

分享个简易版Linux服务器初始化Shell脚本_linux shell

该Shell脚本主要用于新安装Linux服务器系统的初始化工作,具体包括: 关闭IPv6模块 关闭SELinux 让vim显示颜色 设置系统语言编码 优化系统服务 内核参数优化等. 可以根据自己的实际情况修改,可用于生产环境.原作者是NetSeek,本人做了部分修改. 复制代码 代码如下: #!/bin/sh # desc: lsm03624 modified by www.webnginx.com #-------------------cut begin-------------------

法国考虑向谷歌等互联网流量大户收取网络流量费

中介交易 SEO诊断 淘宝客 云主机 技术大厅 北京时间1月8日消息,据彭博社报道,法国政府将考虑让包括谷歌在内的互联网公司为其网络流量增长支付部分费用,以缓解网络运营商压力.对于谷歌来说,这或将是其在欧洲市场遭遇的又一烦心事儿. 周一,法国科技部长弗勒·佩乐琳(leur Pellerin)在巴黎举行的一个新闻发布会上表示,互联网内容供应商使用了网络,就应为网络运营商支付部分运营成本,"就互联网公司应承担部分网络建设费用的问题,我们需要认真关注一下." 在佩乐琳发表此番讲话之前,法国互

linux中MySQL监控脚本方法介绍

最简的办法端口判断法==>仅适合数据库本地使用 法1:if条件判断方法  代码如下 复制代码 [root@oldboy scripts]# cat check_db01.sh #!/bin/sh #created by oldboy #mail:oldboy521@gmail.com PortNum=`netstat -lnt|grep 3306|wc -l` if [ $PortNum -eq 1  ] then    echo "mysqld is running." els

使用Python实现对Linux服务器CPU内存网络的监控脚本

本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写.Python 是由 Guido van Rossum 开发的.可免费获得的.非常高级的解释型语言.其语法简单易懂,而其面向对象的语义功能强大(但又灵活).Python 可以广泛使用并具有高度的可移植性.本文 Linux 服务器是 Ubuntu 12.10, Python 版本 是 2.7 .如果是 Python 3.0 版本的语法上有一定的出入.另外这里笔者所说的 Python 是 CPython

Linux服务器性能追踪以及服务器监控常用命令

在网站性能优化中,我们经常要检查服务器的各种指标,以便快速找到害群之马.大多情况下,我们会使用cacti.nagois或者zabbix之类的监控软件,但是这类软件安装起来比较麻烦,在一个小型服务器,我们想尽快找到问题所在,还是要使用Linux提供的一些命令. 1. 内存检查:free -m 注意,重点看的是第二行,-/+ buffers/cache行,第一个数字是实际消耗的内存,第二个是实际空闲的内存. 2. 系统进程监控 top Top命令注意看输出的第二.第三行.第二行(Tasks)表示系统