Нет никакого пути к общему 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
Когда я использую ping, чтобы видеть, произошел ли хост в сценариях оболочки, я делаю что-то вроде этого:
ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up
В основном, отправляет один ICMP, который испытывает таймаут за секунду без вывода и использует код выхода для пропускания дальнейших действий.
Я боюсь, но существует решение для 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.