用shell指令碼可以實現對網絡卡bytes和packets的雙重監控,每隔一秒輸出一次,最後輸出的是對應ip位址的流量情況。
#!/bin/bash
while true
don=1
while (($n<=$(cat /proc/net/dev | wc -l)))
do # 獲取當前時刻網口接收與傳送的流量
rb_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
rp_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
tb_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
tp_pre[$n]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
inet[$n]=$(cat /proc/net/dev | grep : | sed -n "$p" | sed 's/:/ /g' | awk '')
((n+=1))
done
sleep 1
m=1while (($m<=$(cat /proc/net/dev | wc -l)))
do # 獲取1秒後網口接收與傳送的流量
rb_next[$m]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
rp_next[$m]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
tb_next[$m]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
tp_next[$m]=$(cat /proc/net/dev | grep : | sed -n "$p" | awk '')
((m+=1))
done
clear
echo -e "ip\t rx-bytes\t tx-bytes\t rx-packets\t tx-packets\t time"
i=1while (( $i<=`expr $ - 2`))
do rxb[i]=$((rb_next[i]-rb_pre[i])) #在$取值的時候,括號裡面只需要跟變數即可(變數可自行進行計算)
txb[i]=$((tb_next[i]-tb_pre[i]))
rxp[i]=$((rp_next[i]-rp_pre[i]))
txp[i]=$((tp_next[i]-tp_pre[i]))
ipadd[i]=$(ifconfig $ | grep "inet " | awk '') #獲取網絡卡ip位址
if [ $ -lt 1024 ];then
rxb[i]="$b/s"
elif [ $ -gt 1048576 ];then
rxb[i]=$(echo $ | awk '')
else
rxb[i]=$(echo $ | awk '')
fi# 判斷接收流量如果大於mb數量級則顯示mb單位,否則顯示kb數量級
if [ $ -lt 1024 ];then
txb[i]="$b/s"
elif [ $ -gt 1048576 ];then
txb[i]=$(echo $ | awk '')
else
txb[i]=$(echo $ | awk '')
fiif [ $ -lt 1000 ];then
rxp[i]=$
else
rxp[i]=$(echo $ | awk '')
fiif [ $ -lt 1000 ];then
txp[i]=$
else
txp[i]=$(echo $ | awk '')
fiecho -e "$ \t $ \t $ \t $ \t $ \t `date +%k:%m:%s` "
let "i++"
done
done
shell指令碼 流控制
語法結構 如果 條件判斷中有多條命令,則根據最後一條命令的執行結果進行評估 ifcommand then command elif command then command else command fi bin bash x 5if x 5 then echo x equals 5 else ec...
Linux檢視實時網速的Shell
這是乙個可以檢視linux主機實時網速的shell指令碼,它能夠根據網速自動調整單位以便更好的顯示網速。linux顯示實時網速的shell 在工作過程中,會遇到伺服器非常卡頓的情況,因為伺服器是多人同時使用的,為了全面的分析伺服器卡頓的原因,依次檢查了cpu 記憶體 磁碟io的情況,但是都沒有發現明...
檢視網絡卡流量的小指令碼
filename flow.sh bin bash while 1 doeth 1 rxpre cat proc net dev grep eth tr awk txpre cat proc net dev grep eth tr awk sleep 1 rxnext cat proc net de...