這是乙個可以檢視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...