터미널이 네트워크 연결의 현재 업로드 및 다운로드 속도를 출력하기를 원합니다. 속도를 실시간으로 모니터링하고 싶지 않습니다. “정적”값을 파일에 쓸 수 있기를 원합니다.
어떻게하면 되나요?
답변
이상하게도 가장 쉬운 방법은보고있는 것 같습니다 /proc/net/dev
. 나는 그 파일을 두 번 지연시키고 (두 번째 지연으로) 총 바이트 값을 빼기 위해 다음을 작성했습니다. 이 경우 em1
네트워크 어댑터이므로 원하는 것으로 변경하십시오.
awk '/em1/ {i++; rx[i]=$2; tx[i]=$10}; END{print rx[2]-rx[1] " " tx[2]-tx[1]}' \
<(cat /proc/net/dev; sleep 1; cat /proc/net/dev)
출력은 두 개의 숫자입니다. 초당받은 바이트 수 및 초당 보낸 바이트 수
답변
다음은 Oli의 우수한 솔루션에 대한 변형입니다.
awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
<(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
Oli의 접근 방식과 동일한 결과를 인쇄합니다.
$ awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
> <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
401500 30286
첫 번째 값은 초당 바이트 수의 다운로드 속도이고 두 번째 값은 업로드 속도입니다. 다음을 통해보다 인간 친화적 인 형식을 얻을 수 있습니다.
$ awk '{if(l1){print ($2-l1)/1024"kB/s",($10-l2)/1024"kB/s"} else{l1=$2; l2=$10;}}' \
<(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
398.771kB/s 82.8066kB/s