Ping Linux: Шоу испытывает таймаут

Как я могу сделать ping Linux, чтобы показать, что запросы 'испытывают таймаут' вместо того, чтобы опустить вывод?

Точно так же, как версия Windows ping.

17
задан 12.04.2011, 23:33

3 ответа

Нет никакого пути к общему ping сделать это. При попытке написать сценарий чего-то, что у Вас есть некоторые опции:

ping -c 2 <ip>
RESULT=$?
echo $RESULT
1

Если ping перестал работать, $? будет 1, если ping будет успешен, $? будет 0.

Другая опция использует fping это работает много как Cisco ping:

$ fping 200.1.1.1
200.1.1.1 is unreachable
$ fping 192.168.1.1
192.168.1.1 is alive
2
ответ дан 07.12.2019, 10:34

Когда я использую ping, чтобы видеть, произошел ли хост в сценариях оболочки, я делаю что-то вроде этого:

ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up

В основном, отправляет один ICMP, который испытывает таймаут за секунду без вывода и использует код выхода для пропускания дальнейших действий.

5
ответ дан 07.12.2019, 10:34

Я боюсь, но существует решение для 100% номера этого со стандартным ping. Даже с ping-v для подробного выходного ping было бы тихо в случае тайм-аутов. Вы могли попытаться использовать:

ping -w 2 192.168.199.1
PING 192.168.199.1 (192.168.199.1) 56(84) bytes of data.

--- 192.168.199.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1007ms

Это остановило бы ping после 2 секунд и затем показало бы количество пакетов переданная и потеря пакетов. Другая опция состояла бы в том, чтобы использовать mtr.

1
ответ дан 07.12.2019, 10:34

Теги

Похожие вопросы