如何使用內建 Linux 工具從命令列取得目前頻寬使用量?

如何使用內建 Linux 工具從命令列取得目前頻寬使用量?

我正在尋找一種獲取 Linux 機器上當前總頻寬使用情況的好方法。我已經嘗試過iftopnethogs但與系統監視器相比,它們沒有顯示真實的頻寬使用情況;它們不適合我的專案的需要。我想要一個我執行的命令,它返回上傳和下載的當前使用情況,僅此而已。

我還想使用本機 Linux 工具來完成此操作,而無需安裝任何東西。事實上,我正在製作一個監控應用程序,我希望它能夠監控計算機,而不需要在用戶想要監控的每台計算機上安裝一些東西,那就太好了!

答案1

使用iptraf-http://www.linuxcommand.org/man_pages/iptraf8.html

它是一個基於 ncurses 的命令列實用程序,能夠為您提供電腦上所有介面的統計資料 - 包括頻寬使用情況。

答案2

您可以使用很多工具:,,,,nload... ,如果您只想獲取其輸出的特定部分(例如,上傳和下載),我很確定bmon您可以輸出//iftopvnstatifstatgrepcutawk

監控 Linux 伺服器網路頻寬的 18 個命令

答案3

sysstat 也會收集網路狀態。如果您執行“man sar”,您將看到可以保留歷史資料的所有資源。

透過在 cron 中輸入命令“/usr/lib/sa/sa1”(或 /usr/lib64/sa/sa1)來設定它,並在每次需要資料點時運行它(例如每 5 分鐘)

然後你可以使用“sar”來查看你的數據。預設是今天。您也可以查看長達 30 天的歷史資料。您也可以將資料存檔,以便永久保存(每天的資料約為 8 MB)。

對於網絡,您可以使用“sar -n”

很棒的工具:)

一個例子:

 testlinux:~ # sar -n DEV | head -10
 Linux 2.6.16.60-0.21-default (pCITFileSvr01)    11/07/10

 00:00:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
 00:05:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:05:01         eth0      9.95      0.12      1.42      0.02      0.00      0.00      0.00
 00:10:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:10:01         eth0     10.20      0.04      1.44      0.00      0.00      0.00      0.00
 00:15:01           lo      0.00      0.00      0.00      0.00      0.00       0.00      0.00
 00:15:01         eth0     10.32      0.12      1.50      0.02      0.00      0.00      0.00
 00:20:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 testlinux:~ #

答案4

好吧,我做了一些研究後發現簡而言之,解決方案用於netstat總結網路使用情況。

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1

輸出範例:-

RX packets 76639  bytes 73706194 (70.2 MiB)

更改wlan0您的卡片介面名稱,您可以過濾該命令的更多輸出,例如

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1 | awk '{print $6$7}'

相關內容