![如何使用內建 Linux 工具從命令列取得目前頻寬使用量?](https://rvso.com/image/1414698/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%85%A7%E5%BB%BA%20Linux%20%E5%B7%A5%E5%85%B7%E5%BE%9E%E5%91%BD%E4%BB%A4%E5%88%97%E5%8F%96%E5%BE%97%E7%9B%AE%E5%89%8D%E9%A0%BB%E5%AF%AC%E4%BD%BF%E7%94%A8%E9%87%8F%EF%BC%9F.png)
我正在尋找一種獲取 Linux 機器上當前總頻寬使用情況的好方法。我已經嘗試過iftop
,nethogs
但與系統監視器相比,它們沒有顯示真實的頻寬使用情況;它們不適合我的專案的需要。我想要一個我執行的命令,它返回上傳和下載的當前使用情況,僅此而已。
我還想使用本機 Linux 工具來完成此操作,而無需安裝任何東西。事實上,我正在製作一個監控應用程序,我希望它能夠監控計算機,而不需要在用戶想要監控的每台計算機上安裝一些東西,那就太好了!
答案1
使用iptraf
-http://www.linuxcommand.org/man_pages/iptraf8.html
它是一個基於 ncurses 的命令列實用程序,能夠為您提供電腦上所有介面的統計資料 - 包括頻寬使用情況。
答案2
您可以使用很多工具:,,,,nload
... ,如果您只想獲取其輸出的特定部分(例如,上傳和下載),我很確定bmon
您可以輸出//iftop
vnstat
ifstat
grep
cut
awk
答案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}'