Linux
最後五分鐘上傳了多少?
我不需要乙太網的某種實時視覺狀態 - 我想在最後五分鐘上傳不到 X 時執行我的腳本。所以我只需要從某個命令中獲取一個數字。你能推薦什麼?
我使用 Ubuntu 14.04。
ifconfig <interface>
為您提供特定介面的吞吐量。例如,
root@trinity:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 28:92:4a:32:0c:43 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::2a92:4aff:fe32:c43/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1554100056 errors:0 dropped:3528 overruns:0 frame:15941 TX packets:570492690 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2186365577866 (1.9 TiB) TX bytes:180850207310 (168.4 GiB) Interrupt:18
只需讀取 TX 字節位並進行數學運算。您需要在某個文件中跟踪它,以便計算出差異。
該
ifconfig
命令已被棄用,人們會建議使用ip
. 相關的命令ip
是,root@trinity:~# ip -s link ls eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 link/ether 28:92:4a:32:0c:43 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 2186366161514 1554101939 0 3197 15941 9994871 TX: bytes packets errors dropped carrier collsns 180850392034 570493984 0 0 0 0
在 Linux 下,讀取
/sys/class/net/<interface>/tx_bytes
和/sys/class/net/<interface>/rx_bytes
(取決於您感興趣的方向)是獲取接收到的字節數和在介面上發送的字節數的計數器的好方法。這些計數器也可用於所有介面,/proc/net/dev
但您必須進行更多解析。您可以在開始轉賬之前讀取這些值,並在 5 分鐘後再次讀取它們,然後減去以獲得 5 分鐘期間的轉賬金額。