nc -z $REMOTESERVER 22
echo $?
Se você estiver usando o SSH para fazer o rsync, essa porta deve estar aberta.
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
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.
hping $REMOTESERVER -S -p 22 -c 2 >/dev/null 2>&1; echo $?