停止せずにping統計を確認する


28

ping実行を停止せずに通常の終了統計を表示する方法はありますか?

例えば、私はすぐに見たいです:

--- 8.8.8.8 ping statistics ---
2410 packets transmitted, 2274 received, +27 errors, 5% packet loss, time 2412839ms
rtt min/avg/max/mdev = 26.103/48.917/639.493/52.093 ms, pipe 3

プログラムを停止する必要がないため、蓄積されたデータが失われます。


2
実際、アンドレアスが上記で提案したように、CTRL + \を使用して、pingを終了せずに統計を取得できます。
ジョージ14

回答:


34

pingマンページから(エンファシス鉱山):

指定された数のパケットが送信(および受信)されたとき、またはプログラムがSIGINTで終了した場合、簡単な要約が表示されます。シグナルSIGQUITを使用してプロセスを終了せずに、より短い現在の統計を取得できます。

そのため、統計情報の冗長度がわずかに低くても問題ない場合、これは機能します。

# the second part is only for showing you the PID
ping 8.8.8.8 & jobs ; fg

<... in another terminal ...>

kill -SIGQUIT $PID

短い統計は次のようになります。

19/19 packets, 0% loss, min/avg/ewma/max = 0.068/0.073/0.074/0.088 ms

32
ちょっとした追加:SIGQUIT"Ctrl- \"を押してターミナルから出力できkillます。2番目のターミナルを開いて使用する必要はありません。
アンドレアスヴィーゼ14

6
また、BSDバリアント(OSXを含む)では、pingはSIGINFOシグナルで要約されます。これは、端末でCtrl-Tを使用してトリガーできます。
ブライアンクライン

1
私は定期的に複数の端末を使用し、継続的に接続しpingています。私は通常while true; do ps -o "pid" -C "ping" h | xargs kill -SIGQUIT; sleep 20; done &、最初の端末で起動してから起動しpingます。これは私が新しい開始することを可能にするpingのを、および/または再起動し、既存のping(統計情報をリセットするために)、および追跡する必要はありませ秒PIDのために秒kill
スターソンホッホシルト

1
このメソッドを使用する& jobs ; fgと、コマンドの一部を回答に使用する必要がなくなります。これは、レポートをPID追加することのみを目的としているためです...追加のコメントで申し訳ありません-5分というしきい値のため、元のコメントを編集できません。
スターソンホッホシルト

12

実行中にping統計を取得するもう1つの簡単な方法があります。Ctrl+ | (垂直スラッシュまたはパイプラインとも呼ばれます)

私は個人的に非常に頻繁に使用していますので、試してみてください:

64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=0.893 ms
64 bytes from 192.168.1.1: icmp_seq=23 ttl=64 time=0.862 ms
64 bytes from 192.168.1.1: icmp_seq=24 ttl=64 time=3.18 ms
64 bytes from 192.168.1.1: icmp_seq=35 ttl=64 time=0.877 ms
64 bytes from 192.168.1.1: icmp_seq=36 ttl=64 time=0.866 ms
**36/36 packets, 0% loss, min/avg/ewma/max = 0.832/0.993/0.930/3.185 ms**
64 bytes from 192.168.1.1: icmp_seq=37 ttl=64 time=0.909 ms
64 bytes from 192.168.1.1: icmp_seq=38 ttl=64 time=2.03 ms
64 bytes from 192.168.1.1: icmp_seq=39 ttl=64 time=0.839 ms
64 bytes from 192.168.1.1: icmp_seq=40 ttl=64 time=0.880 ms

2
運命のひねりを加えて、選択したベストアンサーから回答を得た後、実際に特定の機能に向けてコードを提供しました。
2mac 16

xevによると、Ubuntu Bionicを実行しているターミナルでの私にとって、Ctrl + \ ここの他の回答で言及されているキーの組み合わせと同じであることに驚いています:Ctrl + |およびCtrl + 4。すべてによって、0x1cのXLookupStringが生成されstty -aます。キーボードショートカット
-nealmcb

4

試すCtrl+4

次のような行が表示されます。

312/312 packets, 0% loss, min/avg/ewma/max = 0.312/1.236/0.505/208.655 ms

1

pingが有用なSIGQUIT(AIX、Solaris)をサポートしていない場合、1つの回避策があります。各pingが10個のpingのみを発火させる無限のpingループで、中間結果を確認できます。

while :; do ping -c 10 $HOST; done

停止するにControl-Cは、pingコマンドを強制終了するだけです。ジョブを中断してから終了する必要がある場合があります(Control-z; kill %)。

もちろん、これは実際の実行統計を提供するものではありません-それらの10のpingの過程で。


1

監視ユーティリティを使用できます

watch -n 3 ping -c 1 10.170.0.21

これにより、ping3秒ごとにコマンドが実行され、出力が継続的に表示されます。


2
これは実際には質問に答えません。注意深く読んだ場合、目的は実行中の統計情報を取得することでした。新しいものpingを実行すると、履歴が失われるため、必要な情報が提供されません。
2mac

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.