Linux

最後五分鐘上傳了多少?

  • February 21, 2016

我不需要乙太網的某種實時視覺狀態 - 我想在最後五分鐘上傳不到 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 分鐘期間的轉賬金額。

引用自:https://unix.stackexchange.com/questions/264748