失われた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

これを確認してくださいパスワード

これは単にping出力を解析します。

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

存在するLinux、利用できるもの:

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
    停止すると、送信されたパッケージ/受信したパッケージ/失われた割合、最小/平均/最大経過時間を含む追加の統計行が表示されます。

インストールする

デフォルトではインストールされません。次の方法でインストールできます。

  • Ubuntu/ミント
    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"

関連情報