Linux檢視實時網速的Shell

2021-10-22 15:43:01 字數 2089 閱讀 5626

這是乙個可以檢視linux主機實時網速的shell指令碼,它能夠根據網速自動調整單位以便更好的顯示網速。

linux顯示實時網速的shell

在工作過程中,會遇到伺服器非常卡頓的情況,因為伺服器是多人同時使用的,為了全面的分析伺服器卡頓的原因,依次檢查了cpu、記憶體、磁碟io的情況,但是都沒有發現明顯異常,故想到了診斷網路,以便綜合判斷伺服器狀態,於是誕生了這個shell

./net.sh [網絡卡]
例如:檢視網絡卡eth0的網速:

./net.sh eth0
這裡僅提供通過修改原始碼的方式開啟debug模式,具體方式為:

對指令碼中的debug變數賦任意值

debug=true
#!/bin/bash

#net.sh

# about

# 此shell用於顯示實時網速

# author:masterc

# date:2021.03.19

# version:1.0

# 如需開啟debug,給debug賦任意值即可

debug=

# 計算網速

function getrate()"

if[$ -gt 1024 ]

;then

rate=

`expr $ / 1024`

rate_p=

`expr $ % 1024`

result=

"$.$"

fiecho

$result

}# 計算量程

function getunit(

)function main(

)' : 取ifconfig結果的第8行,可根據ifconfig結果做具體調整

# awk -f '[(:]' '' : 取上傳位元組數

up_rate1=

`ifconfig $net_card |

awk'nr==8'

|awk -f '[(:]'''`

down_rate1=

`ifconfig $net_card |

awk'nr==8'

|awk -f '[(:]'''`

up_rate2=0

down_rate2=0

while

true

dosleep 1

up_rate2=

`ifconfig $net_card |

awk'nr==8'

|awk -f '[(:]'''`

down_rate2=

`ifconfig $net_card |

awk'nr==8'

|awk -f '[(:]'''`

# debugif[

$debug];

then

echo

"up_rate1:$,down_rate1:$"

echo

"up_rate2:$,down_rate2:$"

fi# 取差值

up_rate=

`expr $up_rate2 - $up_rate1`

down_rate=

`expr $down_rate2 - $down_rate1`

# 記錄舊值

up_rate1=

$up_rate2

down_rate1=

$down_rate2

# 單位轉換 b -> kb

up_rate=

`expr $up_rate / 1024`

down_rate=

`expr $down_rate / 1024`

# \r用於每次輸出後將游標重新定位到開頭

printf

"\r[up:%6.1f %s,down:%6.1f %s]"

`getrate $up_rate`

`getunit $up_rate`

`getrate $down_rate`

`getunit $down_rate`

done

}main $@

linux測試上下行最大網速和實時網速

1.安裝speedtest cli測試最大上下行網速 yum install python pip y pip install speedtest cli 執行以下命令即可測試最大上下行網速 speedtest cli2.安裝nload測試實時網速 wget org fedora epel 6 i3...

如何實時檢視linux下的日誌

linux日誌檔案在 var log目錄下,可以通過命令檢視日誌檔案。1,cat messages可以檢視某個日誌檔案。2,要達到實時更新,可以通過tail命令檢視更新的資料,例如tail f messages。3,tail命令引數 f 迴圈讀取 q 不顯示處理資訊 v 顯示詳細的處理資訊 c 數目...

Linux下實時檢視GPU狀態

nvidia自帶了乙個nvidia smi的命令列工具,會顯示視訊記憶體使用情況 nvidia smi輸出 但是有時我們希望不僅知道那一固定時刻的gpu使用情況,我們希望一直掌握其動向,此時我們就希望周期性地輸出,比如每 10s 就更新顯示。這時候就需要用到 watch命令,來周期性地執行nvidi...