我不需要以太网的某种实时可视状态 - 我想在最后五分钟上传的内容少于 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