주어진 초 단위 또는 다른 작은 시간 단위로 네트워크 인터페이스의 대역폭을 얻으려는 학교 프로젝트를하고 있습니다. 내가 작업중 인 Perl 스크립트에 이것이 필요합니다. 따라서 비 대화식이어야하며 결과 만 인쇄합니다.
어떤 제안?
답변
에 의해 전송 및 수신 바이트 수 eth0
인터페이스가 자랐다는 이후에 판독 될 수 /sys/class/net/eth0/statistics/tx_bytes
및 /sys/class/net/eth0/statistics/rx_bytes
각각. 에서 읽을 수있는 패킷 수는 …/tx_packets
및 …/rx_packets
입니다. 이러한 파일을 제공하지 않는 이전 커널이있는 경우 데이터는의 출력에서 사용할 수 있습니다 /sbin/ifconfig eth0
.
답변
간단한 접근 방식은 다음과 같습니다.
- ifconfig를
interface name
한 번 실행 하고 출력을 캡처하십시오. - “RX bytes”및 “TX bytes”에서 값을 추출합니다.
- 잠시만 기다려
- 처음 두 단계를 다시 반복하십시오
- 델타 계산