过去五分钟内上传了多少内容?

过去五分钟内上传了多少内容?

我不需要以太网的某种实时可视状态 - 我想在最后五分钟上传的内容少于 X 时运行我的脚本。所以我只需要从某个命令获取一个数字。你能推荐什么?

我使用Ubuntu 14.04。

答案1

在 Linux 下,读取/sys/class/net/<interface>/tx_bytes/sys/class/net/<interface>/rx_bytes(取决于您感兴趣的方向)是获取接口上接收的字节数和发送的字节数的计数器的好方法。这些计数器也可用于所有接口,/proc/net/dev但您必须进行更多解析。您可以在开始转账前读取这些值,并在 5 分钟后再次读取这些值,然后减去以得到 5 分钟内转账的金额。

答案2

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

相关内容