Durmadan ping istatistiklerini kontrol edin


28

pingYürütmeyi durdurmadan olağan sonlandırma istatistiklerini göstermenin bir yolu var mı ?

Örneğin, hızlı bir şekilde görüntülemek istiyorum:

--- 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

programı durdurmak zorunda kalmadan, böylece biriken verileri kaybeder.


2
Aslında, Andreas yukarıda belirtildiği gibi, ping'i bırakmadan istatistikleri almak için CTRL + \ tuşlarını kullanabilirsiniz.
George,

Yanıtlar:


34

Gönderen pingman (vurgu benim):

Belirtilen sayıda paket gönderildiğinde (ve alındığında) veya program bir SIGINT ile sonlandırıldığında kısa bir özet görüntülenir. Daha kısa akım istatistikleri, SIGQUIT sinyaliyle işlem sonlandırılmadan elde edilebilir.

Bu nedenle, istatistiklerinizin biraz daha az ayrıntılı olması durumunda sorun olmazsa bu işe yarar:

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

<... in another terminal ...>

kill -SIGQUIT $PID

Kısa istatistikler şöyle görünür:

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

32
Hafif bir ekleme: SIGQUIT"Ctrl- \" tuşlarına basarak terminalden çıkabilirsiniz, ikinci bir terminalin açık olmasına ve kullanılmasına gerek yoktur kill.
Andreas Wiese

6
Ayrıca, BSD varyantlarında (OSX dahil), ping, terminalde Ctrl-T ile tetiklenebilen bir SIGINFO sinyali ile özetlenir.
Brian Cline

1
Düzenli olarak sürekli devam eden birden fazla terminalim var ping. Genellikle başlamadan while true; do ps -o "pid" -C "ping" h | xargs kill -SIGQUIT; sleep 20; done &önce ilk terminalden başlarım ping. Bu, yeni pings başlatmam ve / veya mevcut pings'yi yeniden başlatmamı sağlar (istatistikleri sıfırlamak için) ve PIDs için izlemesi gerekmez kill.
Starson Hochschild

1
Bu yöntemin kullanılması, & jobs ; fgkomutun bir kısmını yanıtlamanın kullanılmasına gerek olmadığı anlamına gelir çünkü tek amacı raporlamadır PID... Ek yorum için üzgünüm - 5 dakikalık eşikten dolayı orijinal yorumumu artık düzenleyemiyorum.
Starson Hochschild

12

Ping istatistiklerini yürütme sırasında elde etmenin daha kolay bir yolu var: Sadece Ctrl + | (dikey eğik çizgi veya buna boru hattı denir)

Kişisel olarak çok sık kullanıyorum, deneyin:

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
Kaderin bir bükülmesinde, cevabımı seçtiğim en iyi cevaptan aldıktan sonra bu özelliğe doğru bazı kodlar koydum.
2mac

Ubuntu Bionic’de çalışan Terminal’de xev’e göre, buradaki Ctrl + \ diğer cevaplarda belirtilen tuş kombinasyonunun aynı olduğunu görünce şaşırdım : Ctrl + |ve Ctrl + 4. Tümü, gösterildiği gibi SIGQUIT'e bağlı bir 0x1c XLookupString verimi sağlar stty -a. Ayrıca bkz. Klavye kısayolları - Shell SIGKILL Keybinding - Süper Kullanıcı
nealmcb

4

Deneyin Ctrl+4

Bunun gibi bir çizgi gösterir:

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

1

Ping'iniz yararlı bir SIGQUIT'i (AIX, Solaris) desteklemiyorsa, işte bir geçici çözüm - her pingin yalnızca 10 ping patladığı sonsuz bir ping döngüsü (örn.) 10 ping, böylece ara sonuçları görebilirsiniz.

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

Durdurmak için Control-Csadece pingkomutu öldürebilir ; işi askıya almanız ve sonra öldürmeniz gerekebilir ( Control-z; kill %).

Bu, elbette gerçek koşu istatistiklerini sunmuyor - bu 10 pingin hemen üzerinde.


1

Watch yardımcı programını kullanabilirsiniz

watch -n 3 ping -c 1 10.170.0.21

Bu pingkomut her 3 saniyede bir çalışacak ve size sürekli olarak çıktı gösterecektir.


2
Bu aslında soruyu cevaplamıyor. Dikkatlice okuyorsanız, amaç çalışan istatistiklere sahip olmaktı. Yeni bir çalıştırma pinggeçmişi kaybeder ve böylece istenen bilgiyi vermez.
2mac

1

On Mac öyle Ctrl+ T.

Ctrl+ , istatistiklerini gösterdikten sonra pingi durdurduğu için + \ile aynı şeyi yapar .CtrlC


@ Brian-clide için Kudos, bir yorumda benden önce cevap verdiğini fark ettim.
Stefan Rogin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.