Eu usaria isso, um simples liner:
while ! ping -c1 HOSTNAME &>/dev/null; do echo "Ping Fail - 'date'"; done ; echo "Host Found - 'date'" ; /root/scripts/test1.sh
Substitua HOSTNAME
pelo host que você está tentando fazer ping.
Eu perdi a parte de colocá-lo no fundo, coloquei essa linha em um shellscript assim:
#!/bin/sh
while ! ping -c1 $1 &>/dev/null
do echo "Ping Fail - 'date'"
done
echo "Host Found - 'date'"
/root/scripts/test1.sh
E para contextualizar você executaria da seguinte forma:
nohup ./networktest.sh HOSTNAME > /tmp/networktest.out 2>&1 &
Novamente, substitua HOSTNAME
pelo host que você está tentando fazer ping. Nesta abordagem, você está passando o nome do host como um argumento para o shellscript.
Assim como um aviso geral, se o seu host ficar inativo, você terá esse script ping continuamente em segundo plano até que você o mate ou o host seja encontrado. Então, eu teria isso em mente quando você executar isso. Porque você pode acabar comendo os recursos do sistema se esquecer isso.