linux 下脚本查看带宽 (不需要安装其他工具包)
生活随笔
收集整理的這篇文章主要介紹了
linux 下脚本查看带宽 (不需要安装其他工具包)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
因?yàn)槠綍r(shí)常用的都是iftop去查看網(wǎng)卡的帶寬,因?yàn)橛邢鄬?duì)的可視化界面。可是平時(shí)去其他的centos上查看流量的話,對(duì)方的電腦不一定會(huì)安裝iftop,這樣的話會(huì)帶來(lái)一定的麻煩,所以去網(wǎng)上找了一下traffic.sh 利用腳本去檢測(cè)實(shí)時(shí)帶寬。
#!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export PATH function traffic_monitor {# 系統(tǒng)版本OS_NAME=$(sed -n '1p' /etc/issue)# 網(wǎng)口名eth=$1#判斷網(wǎng)卡存在與否,不存在則退出if [ ! -d /sys/class/net/$eth ];thenecho -e "Network-Interface Not Found"echo -e "You system have network-interface:\n`ls /sys/class/net`"exit 5fiwhile [ "1" ]do# 狀態(tài)STATUS="fine"# 獲取當(dāng)前時(shí)刻網(wǎng)口接收與發(fā)送的流量RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')# 獲取1秒后網(wǎng)口接收與發(fā)送的流量sleep 1RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')clear# 獲取這1秒鐘實(shí)際的進(jìn)出流量RX=$((${RXnext}-${RXpre}))TX=$((${TXnext}-${TXpre}))# 判斷接收流量如果大于MB數(shù)量級(jí)則顯示MB單位,否則顯示KB數(shù)量級(jí)if [[ $RX -lt 1024 ]];thenRX="${RX}B/s"elif [[ $RX -gt 1048576 ]];thenRX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')$STATUS="busy"elseRX=$(echo $RX | awk '{print $1/1024 "KB/s"}')fi# 判斷發(fā)送流量如果大于MB數(shù)量級(jí)則顯示MB單位,否則顯示KB數(shù)量級(jí)if [[ $TX -lt 1024 ]];thenTX="${TX}B/s"elif [[ $TX -gt 1048576 ]];thenTX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')elseTX=$(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.showerlee.com"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 "------------------------------"# 打印實(shí)時(shí)流量echo -e "$eth \t $RX $TX "echo "------------------------------"# 退出信息echo -e "Press 'Ctrl+C' to exit"done } # 判斷執(zhí)行參數(shù) if [[ -n "$1" ]];then# 執(zhí)行函數(shù)traffic_monitor $1 elseecho -e "None parameter,please add system netport after run the script! \nExample: 'sh traffic_monitor eth0'" fi
執(zhí)行以下腳本,eth0就是對(duì)應(yīng)本機(jī)的網(wǎng)卡。
# sh traffic_monitor.sh eth0
如果執(zhí)行的過(guò)程有報(bào)錯(cuò),原因是不同的系統(tǒng)對(duì)換行符的理解不同,即對(duì)\r的理解不同,所以就會(huì)出現(xiàn)這種情況。
執(zhí)行sed -i 's/\r$//' /root/traffic_monitor.sh ?
2015年12月13日23:41:47
總結(jié)
以上是生活随笔為你收集整理的linux 下脚本查看带宽 (不需要安装其他工具包)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 170728、单例模式的三种水平代码
- 下一篇: TimesTen Warnings an