저는 Linux 시스템에서 현재 총 대역폭 사용량을 얻는 좋은 방법을 찾고 있습니다. iftop
, 을 시도했지만 nethogs
시스템 모니터와 비교하여 실제 대역폭 사용량을 표시하지 않습니다. 내 프로젝트의 요구 사항에 적합하지 않습니다. 내가 실행하는 명령을 원하며 업로드 및 다운로드에 대한 현재 사용량만 반환합니다.
아무것도 설치하지 않고 기본 Linux 도구를 사용하여 수행하고 싶습니다. 사실 저는 모니터링 응용 프로그램을 만들고 있는데 사용자가 모니터링하려는 각 컴퓨터에 무언가를 설치할 필요 없이 컴퓨터를 모니터링할 수 있기를 바랍니다. 그러면 좋을 것 같습니다!
답변1
사용 iptraf
-http://www.linuxcommand.org/man_pages/iptraf8.html
이는 대역폭 사용량을 포함하여 시스템의 모든 인터페이스에 대한 통계를 제공할 수 있는 ncurses 기반 명령줄 유틸리티입니다.
답변2
사용할 수 있는 도구는 많습니다: nload
, bmon
, iftop
, vnstat
... 그리고 출력의 특정 부분(예: 업로드 및 다운로드)만 얻으려는 경우 // 출력을 ifstat
수행할 수 있다고 확신합니다 . 당신을 위해 작동하도록합니다.grep
cut
awk
답변3
sysstat는 네트워크 상태도 수집합니다. "man sar"를 실행하면 기록 데이터를 보관할 수 있는 모든 리소스가 표시됩니다.
cron에 "/usr/lib/sa/sa1"(또는 /usr/lib64/sa/sa1) 명령을 입력하여 설정하고 데이터 포인트를 원할 때마다(예: 5분마다) 실행되도록 합니다.
그런 다음 "sar"를 사용하여 데이터를 볼 수 있습니다. 기본값은 오늘입니다. 최대 30일 동안의 기록 데이터도 볼 수 있습니다. 데이터를 영원히 보관할 수 있도록 보관할 수도 있습니다(매일 데이터는 약 8MB).
네트워킹의 경우 "sar -n"을 사용합니다.
훌륭한 도구 :)
예:
testlinux:~ # sar -n DEV | head -10
Linux 2.6.16.60-0.21-default (pCITFileSvr01) 11/07/10
00:00:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
00:05:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:05:01 eth0 9.95 0.12 1.42 0.02 0.00 0.00 0.00
00:10:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:01 eth0 10.20 0.04 1.44 0.00 0.00 0.00 0.00
00:15:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:15:01 eth0 10.32 0.12 1.50 0.02 0.00 0.00 0.00
00:20:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
testlinux:~ #
답변4
좋아요, 제가 조금 조사한 후에 찾았어요이것간단히 말해서 netstat
네트워크 사용량을 요약하는 데 사용되는 솔루션입니다. 수정된 명령은 다음과 같습니다.
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1
출력 예:-
RX packets 76639 bytes 73706194 (70.2 MiB)
카드 인터페이스 이름을 변경 wlan0
하면 해당 명령의 더 많은 출력을 필터링할 수 있습니다.
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1 | awk '{print $6$7}'