Sprawdź statystyki ping bez zatrzymywania

28

Czy istnieje sposób, aby pokazać, pingże wyświetla zwykłe statystyki zakończenia bez zatrzymywania wykonywania?

Na przykład chciałbym szybko wyświetlić:

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

bez konieczności zatrzymywania programu, co powoduje utratę zgromadzonych danych.

2mac
źródło
2
Rzeczywiście, jak sugeruje powyżej Andreas, możesz użyć CTRL + \, aby uzyskać statystyki bez wychodzenia z pingowania.
George

Odpowiedzi:

34

Z strony pingpodręcznika (moje podkreślenie):

Gdy określona liczba pakietów została wysłana (i odebrana) lub program zakończył się SIGINT, wyświetlane jest krótkie podsumowanie. Krótsze statystyki prądu można uzyskać bez przerywania procesu sygnałem SIGQUIT.

To zadziała, jeśli twoje statystyki są nieco mniej szczegółowe:

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

<... in another terminal ...>

kill -SIGQUIT $PID

Krótkie statystyki wyglądają następująco:

19/19 packets, 0% loss, min/avg/ewma/max = 0.068/0.073/0.074/0.088 ms
pmos
źródło
32
Jeden drobny dodatek: Możesz emitować SIGQUITz terminala, naciskając „Ctrl- \”, bez potrzeby otwierania drugiego terminala i korzystania z niego kill.
Andreas Wiese,
6
Również w wariantach BSD (w tym OSX) ping podsumowuje sygnałem SIGINFO, który można uruchomić za pomocą Ctrl-T w terminalu.
Brian Cline,
1
Regularnie mam wiele terminali z ciągłym pingdziałaniem. Zwykle zaczynam while true; do ps -o "pid" -C "ping" h | xargs kill -SIGQUIT; sleep 20; done &w pierwszym terminalu przed uruchomieniem ping. To pozwala mi rozpocząć nowe pingS i / lub ponownie uruchomić istniejące pings (do resetowania statystyk) i nie trzeba śledzić PIDs dla kill.
Starson Hochschild
1
Użycie tej metody oznacza, że ​​nie trzeba używać tej & jobs ; fgczęści polecenia w odpowiedzi, ponieważ jej jedynym celem jest zgłoszenie PID... Przepraszam za dodatkowy komentarz - nie mogę już edytować mojego oryginalnego komentarza ze względu na 5-minutowy próg.
Starson Hochschild
12

Jest jeszcze jeden prosty sposób na uzyskanie statystyk pingowania podczas jego wykonywania: Po prostu naciśnij Ctrl + | (pionowy ukośnik lub jest również nazywany linią rurową)

Bardzo często go używam osobiście, spróbuj:

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
Dr Alexander
źródło
2
W zrządzeniu losu rzeczywiście przyczyniłem się do dodania kodu do tej konkretnej funkcji po otrzymaniu mojej odpowiedzi od wybranej najlepszej odpowiedzi.
2mac
Jestem zaskoczony, widząc, że dla mnie w Ubuntu Bionic działający Terminal, według xev, Ctrl + \ jest taki sam, jak kombinacja klawiszy wspomniana w innych odpowiedziach tutaj: Ctrl + |i Ctrl + 4. Wszystkie dają XLookupString 0x1c, który jest powiązany z SIGQUIT, jak pokazano przez stty -a. Zobacz także skróty klawiaturowe
Powiązywanie
4

Spróbuj Ctrl+4

Pokazuje taką linię:

312/312 packets, 0% loss, min/avg/ewma/max = 0.312/1.236/0.505/208.655 ms
Alexindro
źródło
1

Jeśli twój ping nie obsługuje przydatnego SIGQUIT (AIX, Solaris), oto jedno obejście - nieskończona pętla ping, w której każdy ping uruchamia (np.) 10 pingów, abyś mógł zobaczyć wyniki pośrednie.

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

Aby go zatrzymać, Control-Cmoże zabić tylko pingpolecenie; może być konieczne zawieszenie, a następnie zabicie zadania ( Control-z; kill %).

To oczywiście nie zapewnia prawdziwych statystyk biegania - tylko w ciągu tych 10 pingów.

Jeff Schaller
źródło
1

Możesz użyć narzędzia do oglądania

watch -n 3 ping -c 1 10.170.0.21

Spowoduje to uruchomienie pingpolecenia co 3 sekundy i ciągłe wyświetlanie wyniku.

Dima Kazavchinsky
źródło
2
To nie odpowiada na pytanie. Jeśli czytasz uważnie, celem było posiadanie bieżących statystyk. Uruchomienie nowego pingspowoduje utratę historii, a tym samym nie zapewni pożądanych informacji.
2mac
1

Na Macu to Ctrl+ T.

Ctrl+ \robi to samo co Ctrl+ C, ponieważ zatrzymuje ping po wyświetleniu statystyk.

Stefan Rogin
źródło
Uznanie dla @ brian-clide, zauważyłem, że odpowiedział przede mną w komentarzu.
Stefan Rogin