Gdy korzystamy z pingowania systemu Windows, pokaże nieudane pingi. Czy Ubuntu ma podobną funkcję?
Niepowodzenie polecenia ping jest bardzo przydatne podczas debugowania sieci. Jak to rozwiązujecie? Chcę tylko prostego rozwiązania, nie chcę mieć długiego skryptu.
5 packets transmitted, 0 received, 100% packet loss, time 4032ms
(takie informacje są drukowane po zakończeniu pingowania, samodzielnie lub przez Ctrl + C)? Czy szukasz oddzielnych danych na temat każdego pojedynczego polecenia ping?Odpowiedzi:
Prawidłowa odpowiedź to: nie ma czegoś takiego jak „
nieudanyzgubiony ping”. (Odpowiedzi na błędy, takie jak „Miejsce docelowe nieosiągalne” są zawsze drukowane, różni się to od braku odpowiedzi).Narzędzie ping wyświetla wszystkie otrzymane odpowiedzi, nawet jeśli jedzący zdecyduje, że ten konkretny ping został utracony. Całkowicie możliwe jest otrzymywanie odpowiedzi poza kolejnością.
Nawet na moim telefonie z Androidem standardowe narzędzie ping obsługuje te 2 opcje:
-D drukuje znacznik czasu przed każdą wiadomości
-O drukuje wiadomość, gdy odpowiedź nie zostanie odebrana na czas, i jest mniej więcej tym, o co pytano .
Jednak te opcje nie wydają się być obsługiwane wszędzie (np. Debian Wheezy nie ma ich o ile wiem, podczas gdy Jessie je ma.
busybox ping
Nie obsługuje ich).Oto przykładowe dane wyjściowe, które udało mi się uzyskać (pominięto nieważne odpowiedzi ping):
Zauważ, że po raz pierwszy zgłoszono brak numeru # 130, a następnie odebrano go po numerze 131, a na koniec zgłasza się zero pakietów.
Dodatkowa uwaga na temat systemu Windows:
W systemie Windows ping wydaje się czekać dłużej na odpowiedź, a następnie zadeklarować jej brak i zignorować, jeśli pojawi się później.
Domyślnie interwał wynosi 1 sekundę, a limit czasu wynosi 4 sekundy, więc:
Przy niskim RTT pingi będą wysyłane z 1-sekundowymi interwałami.
Przy RTT> 4 pingi będą wysyłane w odstępach 4-sekundowych (lub 5, niepewny) i wszystkie będą zgłaszane jako nieudane, tak jakby serwer nie odpowiedział.
źródło
-O
opcji jest obecne i działa dobrze w zaufanym systemie Ubuntu (i Linux Mint 17.2) z pakietu iputils-ping wersja 3: 20121221-4ubuntu1.1Wyjście częściowo z odpowiedzi EvgEnZh, ale z moją własną wersją:
To sprawia, że drukuje wiadomość, gdy odpowiedź trwa zbyt długo lub nigdy nie wraca (
-O
), i pomija wiadomości, gdy wracają (-q
). W rezultacie otrzymujesz dane wyjściowe tylko wtedy, gdy brakuje pakietów. Może to znacznie ułatwić znajdowanie sporadycznych problemów, dzięki czemu nie musisz przesiewać stosu komunikatów „zadziałało” w kilku miejscach, w których się zepsuł.źródło
Może
ping -f
jest odpowiedni dla ciebie. Z instrukcji ping:Dla 1 echo_request na sekundę to wyglądałoby
ping -i 1 -f 8.8.8.8
źródło
Nawet z opcją -v ping tego nie robi. Zobacz to pytanie . Ale jeśli jest to dla Ciebie naprawdę ważne (lub zabawne), możesz pobrać źródło, zmodyfikować kod, aby zawierał odpowiednie wywołanie printf. Dobrym miejscem do tego byłoby zakończenie metody „send_probe” (linia 619 na 12.10) ...
Najpierw zdobądź źródło
Wprowadź zmiany
Zbuduj i zainstaluj wygenerowany pakiet ...
źródło
Dziękuję za wszystkie odpowiedzi. Wydaje się, że najnowszy ping Ubuntu może pokazać, że ping nie powiódł się.
Dzięki jeszcze raz.
źródło
ping -O -q 8.8.8.8
jest droga.