터미널에서 현재 업로드 및 다운로드 속도를 얻는 방법은 무엇입니까? 다운로드 속도를 출력하기를 원합니다. 속도를

터미널이 네트워크 연결의 현재 업로드 및 다운로드 속도를 출력하기를 원합니다. 속도를 실시간으로 모니터링하고 싶지 않습니다. “정적”값을 파일에 쓸 수 있기를 원합니다.

어떻게하면 되나요?



답변

이상하게도 가장 쉬운 방법은보고있는 것 같습니다 /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


답변