이더넷의 실시간 시각적 상태가 필요하지 않습니다. 지난 5분 동안 업로드된 콘텐츠의 양이 X 미만인 경우 스크립트를 실행하고 싶습니다. 그래서 일부 명령에서 번호를 얻어야 합니다. 무엇을 추천할 수 있나요?
우분투 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