Como posso verificar se um computador remoto está online para acesso ssh / script?

9

Estou escrevendo um script que fará backup de dados do meu laptop para um servidor Ubuntu. Para isso, estou procurando um comando (ba) sh para testar se o servidor está disponível antes de iniciar o backup. algo como ping na porta 22 que retorna um booleano.

Como posso fazer isso?

    
por Amo__ 02.02.2011 / 21:03

4 respostas

17

Assim:

nc -z hostname 22 > /dev/null
echo $?

Se for 0 , estará disponível. Se for 1 , então não é.

    
por 02.02.2011 / 21:22
10

Use o netcat :

nc -z localhost 22

Na página de manual

 -z      Specifies that nc should just scan for listening daemons,
         without sending any data to them.
    
por 02.02.2011 / 21:21
2

E sobre

MACHINE=192.168.0.8
exec 3>/dev/tcp/${MACHINE}/22
if [ $? -eq 0 ]
then
    echo "SSH up"
else
    echo "SSH down"
fi
    
por 02.02.2011 / 21:26
2

Alternativo:

nc -vzw 1 hostname 22
    
por 18.10.2016 / 11:27