用shell指令碼實時檢視網絡卡流量

2021-09-24 14:58:18 字數 2097 閱讀 2926

用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...