특정 네트워크 인터페이스 (예 : eth0)를 통해 트래픽을 모니터링 (예 : 활용도를 실시간으로 확인) 할 수있는 방법이 있습니까?
여기서 주목할 점은 상자에있는 도구 세트가 고정되어 있으며 재고 RHEL 배포와 거의 비슷하므로 추가 도구를 사용할 수 없다는 것입니다.
기본적이고 일반적으로 iostat와 같은 것을 찾고 있습니다.
특정 네트워크 인터페이스 (예 : eth0)를 통해 트래픽을 모니터링 (예 : 활용도를 실시간으로 확인) 할 수있는 방법이 있습니까?
여기서 주목할 점은 상자에있는 도구 세트가 고정되어 있으며 재고 RHEL 배포와 거의 비슷하므로 추가 도구를 사용할 수 없다는 것입니다.
기본적이고 일반적으로 iostat와 같은 것을 찾고 있습니다.
답변:
보고자하는 데이터는 오래된 ifconfig에 나타납니다.
watch ifconfig eth0
또는 일을 더 돋보이게 만들려면 :
watch -n 1 -d ifconfig eth0
ifconfig
.
iftop 명령을 사용합니다. 통계를 실시간으로 보여줍니다.
iftop -i eth0
일부 sceenshots를 확인하십시오.
http://www.thegeekstuff.com/2008/12/iftop-guide-display-network-interface-bandwidth-usage-on-linux/
새로운 도구를 설치하지 않고 :
while ifconfig eth0 | grep 'RX bytes'; do sleep 10; done
2015 년 이후 리눅스에서 이것은 더 좋을 것입니다
watch -n1 -d ip -s link show [interface]
function humanValue()
{
h=( '' K M G T P )
i=1; v=$(( $1 * 8 ))
while [ $v -gt $(( 1 << 10 * i )) ]; do let i++; done;
echo -n "$(( $v >> 10 * --i )) ${h[i]}b/s";
}
ifaces=$(ip addr | grep -E "^[0-9]:" | cut -d" " -f2 | tr -d \:)
declare -A RX2 TX2;
while sleep 1;
do
date
for INTERFACE in $ifaces;
do
RX1=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
TX1=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
DOWN=$(( RX1 - RX2[$INTERFACE] ))
UP=$(( TX1 - TX2[$INTERFACE] ))
RX2[$INTERFACE]=$RX1; TX2[$INTERFACE]=$TX1
echo -e "[ $INTERFACE:\tRX: $(humanValue $DOWN)\t|\tTX: $(humanValue $UP) ]"
done;
done;