Используйте переключатель -w
(или -t
во FreeBSD и OS X) в команде ping
, затем проверьте возвращаемое значение команды.
ping -w 1 $c
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
ssh $c 'check something'
fi
Вы можете настроить параметр, который вы передаете, с помощью -w
, если хосты, к которым вы подключаетесь, находятся далеко, а задержка выше.
С man ping
:
-w deadline
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.