开发者社区> 问答> 正文

运维分享一一linux系统带宽监测脚本

大象吃豆子 2014-07-03 10:21:41 23603
服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需安装的带宽查看脚本,可以查询linux服务器当前带宽使用量,有需要的朋友可以试试。
脚本仅为个人使用,或存在安全风险,请各位使用前自行评估。

快速使用方法

1、下载脚本
ssh登录服务器后输入:

英文版:
wget http://jinxiangtest.oss-cn-hangzhou.aliyuncs.com/shell/vmnetcheck.sh

中文版:
gbk版本(默认使用这个就行):
wget http://jinxiangtest.oss-cn-hangzhou.aliyuncs.com/shell/vmnetcheckgbk.sh
utf8版本(如果乱码使用这个版本):
wget http://jinxiangtest.oss-cn-hangzhou.aliyuncs.com/shell/vmnetcheckutf8.sh


2、增加权限
chmod +x vmnetcheck.sh

如果下载的是中文版则执行:
chmod +x vmnetcheckgbk.sh
chmod +x vmnetcheckutf8.sh

3、执行脚本
./vmnetcheck.sh

如果下载的是中文版则执行:
./vmnetcheckgbk.sh
./vmnetcheckutf8.sh


脚本详细使用方法:
例:./vmnetcheck.sh [eth0|eth1]
参数说明:
不写参数时,默认检查外网网卡eth1
eth0  :检查内网网卡
eth1  :检查外网网卡
其他:
脚本需要按q键退出,无法使用ctrl+c停止

例:
以下例子,在本地电脑进行了一个web下载后,可以发现测试机的出带宽达到2.23Mb,测试机是2M的带宽,说明已经满了,这时能看到出队列的值比较高是一个nginx进程,说明该进程可能是导致带宽满的原因,可以根据此信息定位问题。
[attachment=55495]



2014年11月24日增加英文版

英文版例:
[attachment=65216]

[attachment=65213]

这里说明进程PID为10042的nginx进程占用了较高的带宽,已经跑到1.07Mb




第一行:
Private IP:    内网IP
Public IP:    公网IP
ICMP:如果禁ping会显示,没有禁用不会显示

第二行:
SSH Port:显示当前ssh端口
SSH root Login:显示当前是否允许root登陆
SSH Password Authentication:显示当前是否允许密码验证

第三行:
Press q to exit  :脚本必须要按q键才能推出,ctrl+c不行

第四行:
interface:显示当前网卡,阿里云ECS eth0是内网 eth1是公网
InBand: 入网带宽,单位是千字节每秒,括号里单位是兆比特每秒,阿里云ECS默认入网带宽不限速
OutBand:出网带宽, 单位是千字节每秒,括号里单位是兆比特每秒,购买几兆带宽,就能跑几兆

第五行及之后行:
Recv-Q:入网队列(收到数据包的队列),如果从服务器内部下载文件,这个会比较高。
Send-Q:出网队列(发送数据包的队列),这个数值越大,这一行进程占用的带宽越多,如果出带宽满了,主要看这里
Local:服务器本地IP及端口
Foreign:外部访问者的IP及端口,如果某IP下载很多高,可以排查下这个访问者
PID/Name:进程PID和进程名字






运维分享--linux系统mysql连接检查脚本
http://bbs.aliyun.com/read/177577.html?spm=0.0.0.0.Jpfv1d

维分享--linux系统mysql密码修改脚本
http://bbs.aliyun.com/read/177545.html?spm=0.0.0.0.Jpfv1d

运维分享--linux系统ssh远程连接检查脚本
http://bbs.aliyun.com/read/177513.html?spm=0.0.0.0.Jpfv1d

运维分享--linux系统带宽监测脚本
http://bbs.aliyun.com/read/162819.html?spm=0.0.0.0.Jpfv1d

运维分享--linux系统web日志分析脚本
http://bbs.aliyun.com/read/177580.html?spm=5176.7189909.0.0.jpb8j7

运维分享--linux系统负载状态检查脚本
http://bbs.aliyun.com/read/177581.html?spm=5176.7189909.0.0.jJtAK3

运维分享 -- linux系统Dnat脚本
http://bbs.aliyun.com/read/255107.html?spm=5176.7189909.0.0.4mHDsS

运维分享 -- CentOS6系统PPTP VPN脚本
https://bbs.aliyun.com/read/272213.html?amp;displayMode=1&page=1&toread=1#tpc

弹性计算 运维 关系型数据库 MySQL Linux Shell 应用服务中间件 网络安全 数据安全/隐私保护 nginx
分享到
取消 提交回答
全部回答(7)
  • captain_laowu
    2017-02-08 14:15:41
    Re运维分享一一linux系统带宽监测脚本
    脚本在哪里下载呢,大神
    0 0
  • 小虾--
    2015-04-07 21:15:21
    Re运维分享一一阿里云linux系统带宽监测脚本
    不错
    0 0
  • yanhailou
    2014-11-14 11:29:11
    gbk utf8都乱码
    0 0
  • 林林林林
    2014-07-03 13:46:43
    您的帖子很精彩!希望很快能再分享您的下一帖!
    0 0
  • 大象吃豆子
    2014-07-03 10:50:02
    Re阿里云linux系统带宽检查脚本
    引用第2楼服务器之家于2014-07-03 10:36发表的  :
    BASH脚本输出内容里最好不要用中文

    很多linux新手朋友对英文的输出不太理解,我特意写成中文的,ssh默认不用进行任何设置也不会乱码,如果出现乱码说明客户端可能是utf8格式,可以使用utf8 格式的版本:
    wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/vmnetcheckutf8.sh

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

    回5楼yanhailou的帖子
    已经上传了英文版,如果都乱码可以使用这个版本试试。
    0 0
滑动查看更多

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程