손실된 icmp_seq 수 표시 |

손실된 icmp_seq 수 표시 |

ICMPping 명령을 실행할 때 누락된 패킷을 표시하거나 출력에 실패를 표시할 수 있는 것을 찾고 있습니다 . 아래 예

현재 출력에서 ​​icmp_seq 개수가 누락되었습니다.

64 bytes from 192.168.56.11: icmp_seq=38 ttl=64 time=1.23 ms
64 bytes from 192.168.56.11: icmp_seq=52 ttl=64 time=0.831 ms
64 bytes from 192.168.56.11: icmp_seq=53 ttl=64 time=0.679 ms
64 bytes from 192.168.56.11: icmp_seq=54 ttl=64 time=0.679 ms
64 bytes from 192.168.56.11: icmp_seq=55 ttl=64 time=0.679 ms
64 bytes from 192.168.56.11: icmp_seq=56 ttl=64 time=0.679 ms

필요한 출력이 누락된 경우 icmp_seq를 계산한 다음 오류를 표시합니다.

64 bytes from 192.168.56.11: icmp_seq=51 ttl=64 time=1.23 ms
64 bytes from 192.168.56.11: icmp_seq=52 ttl=64 time=0.831 ms
64 bytes from 192.168.56.11: icmp_seq=53 ttl=64 time=0.679 ms
Failed
Failed
Failed 
Failed
64 bytes from 192.168.56.11: icmp_seq=58 ttl=64 time=0.679 ms
64 bytes from 192.168.56.11: icmp_seq=59 ttl=64 time=0.679 ms
Failed
Failed
Failed

답변1

ping을 사용하여 -O언급산소미완성 패킷. 패키지는 절대 손실되지 않지만, -O완료되지 않은 패키지는 다음과 같은 줄이 표시됩니다.

Thu 04 Mar 2021 05:32:04 PM CET no answer yet for icmp_seq=232

그래서 당신은 이것을 할 수 있습니다 :

ping -O 192.168.56.11 | sed "s/.*no answer yet.*/failed/g"

원하는 출력을 얻으려면.

답변2

이것을 확인하세요암호

이것은 단지 핑 출력을 구문 분석합니다.

bash-4.1$ cat ping.awk
#!/usr/bin/awk -f
#
# analyzes ping output on Linux and looks for missed returns
# based on icmp_seq
#
# ping output is expected on stdin
#

BEGIN { num = 0 }
$5 ~ /icmp_seq=/ {
    split($5, res, /=/);
    if (res[2] != num + 1) {
        print "missed between", num, "and", res[2] }
    num = res[2];
}


bash-4.1$ cat ping_result.txt
64 bytes from 192.168.56.11: icmp_seq=38 ttl=64 time=1.23 ms
64 bytes from 192.168.56.11: icmp_seq=52 ttl=64 time=0.831 ms
64 bytes from 192.168.56.11: icmp_seq=53 ttl=64 time=0.679 ms


bash-4.1$ awk -f ping.awk ping_result.txt
missed between 0 and 38
missed between 38 and 52

답변3

존재하다리눅스, 사용할 수 있는 것:

fping -l google.com

위의 명령이 표시됩니다통계자료:

  • 요청당 소요된 평균 시간입니다.
  • 손실된 전체 패키지의 비율입니다.

샘플 출력

google.com : [160], 84 bytes, 32.0 ms (39.1 avg, 0% loss)
google.com : [161], 84 bytes, 32.3 ms (39.1 avg, 0% loss)
google.com : [162], 84 bytes, 33.8 ms (39.1 avg, 0% loss)
google.com : [163], 84 bytes, 31.3 ms (39.0 avg, 0% loss)
google.com : [164], 84 bytes, 32.8 ms (39.0 avg, 0% loss)
google.com : [165], 84 bytes, 37.3 ms (39.0 avg, 0% loss)
google.com : [166], 84 bytes, 32.4 ms (38.9 avg, 0% loss)
google.com : [167], 84 bytes, 36.1 ms (38.9 avg, 0% loss)
google.com : [168], 84 bytes, 32.8 ms (38.9 avg, 0% loss)
google.com : [169], 84 bytes, 33.8 ms (38.8 avg, 0% loss)
google.com : [170], 84 bytes, 32.6 ms (38.8 avg, 0% loss)
google.com : [171], 84 bytes, 33.0 ms (38.8 avg, 0% loss)
google.com : [172], 84 bytes, 33.2 ms (38.7 avg, 0% loss)
^C
google.com : xmt/rcv/%loss = 173/173/0%, min/avg/max = 31.3/38.7/261

팁:

  • ctrl + c
    중지하면 전송된 패키지/수신된 패키지/손실된 비율, 최소/평균/최대 경과 시간을 포함한 추가 통계 줄이 표시됩니다 .

설치하다

기본적으로 설치되지 않으며 다음을 통해 설치할 수 있습니다.

  • 우분투/민트
    sudo apt install fping

답변4

지금까지 나는 다음 명령을 성공적으로 작성했습니다. tailf생성되는 파일 과 함께 백그라운드에서 실행할 수 있습니다 .

[root@connect ~]# touch result.txt; while true; do ping  -c 1 -w 2 192.168.56.11 || echo “`date` ping faild” >> result.txt; sleep 1; done

편집자 주: 포스터는 대신 다음과 같은 내용을 작성하고 싶었을 수도 있습니다 “`date` ping faild”.

"$(date) ping failed"

관련 정보