Como posso verificar se uma máquina * nix está online sem ping?

4

Eu tenho um script bash que usa o rsync para fazer backup de arquivos de duas estações de trabalho remotas (unix e linux) para um disco rígido local. Eu quero o script para verificar se a estação de trabalho está online antes de executar o rsync. A maneira mais fácil de pensar é usar ping:

ping -s 1 -c 1 $SERVN > /dev/null; echo $?

Isso funciona bem para uma estação de trabalho, mas por questões de segurança, o ping está desativado na outra. Eu tentei nc e também não funciona. Eu também tentei "pingar" a máquina usando ssh ou rsync, mas é claro que recebo uma solicitação de senha, o que desafia o propósito de fazer isso em primeiro lugar. Alguém tem alguma sugestão / ideia? obrigado

    
por rs028 08.08.2012 / 13:31

3 respostas

2
nc -z $REMOTESERVER 22 
echo $?

Se você estiver usando o SSH para fazer o rsync, essa porta deve estar aberta.

    
por 09.08.2012 / 22:48
1
ssh $REMOTESERVER -o PasswordAuthentication=no

Isso deve tentar se conectar via SSH, mas não solicitará senha, pois esse método está desativado pela opção.

Ressalva: essa tentativa de conexão pode ser contada como "login sem sucesso", e você pode se bloquear, por exemplo se você estiver usando DenyHosts.

    
por 09.08.2012 / 22:54
-1
hping $REMOTESERVER -S -p 22 -c 2 >/dev/null 2>&1; echo $?
    
por 09.10.2012 / 10:01