Я хочу попробовать использовать команду ping, чтобы определить, не работает ли сервер. Таким образом, идея состояла в том, чтобы что-то пинговать вечно, а затем, если пинг когда-нибудь истечет (флаг -W), он вернется, и я смогу обнаружить это. Но если я пингую по недостижимому адресу, пинг просто блокируется навсегда, и я ожидаю, что время ожидания истечет и он вернется.

ping 1.1.1.1 -W 1 -v
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
^C
--- 1.1.1.1 ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9071ms

1 ответ1

1

ping не был заблокирован, он просто не показывал вам сбой передачи во время работы.

Посмотрите на статистику, когда вы остановили ее.

10 packets transmitted, 0 received, 100% packet loss, time 9071ms

Вы видите, что пакеты были переданы, но не получены. Вы запустили его в течение ~ 10 секунд, и он передал 10 пакетов и ждал 1 секунду в течение периода ожидания, который вы упомянули, прежде чем отправлять следующий пакет.

Если вы хотите визуализировать неудачные передачи, вы можете использовать опцию -f с подходящим интервалом проверки связи, используя опцию -i interval . Значение interval должно быть больше 0,2 секунды. Вы можете найти более подробную информацию об этом на странице руководства ping, запустив man ping .

ping -f -i .5 -W 1 1.1.1.1

Будет производить вывод, как это.

PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
.......^C
--- 1.1.1.1 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 3048ms

Где каждый . представляет передачу без какого-либо ответа, и в случае ответа будет напечатан один пробел, удаляющий a . ,

Я думаю, что это то решение, которое вы ищете. Автоматический скрипт для периодической проверки подключения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .