
Eu tenho um script de implantação que usa SSH para conectar-se a vários hosts. Ocasionalmente, um host estará sob uma carga tão severa que a tentativa de ssh será interrompida. Eventualmente, isso causará um tempo limite na implantação, mas somente após um longo período de tempo.
Idealmente, gostaria que o script falhasse mais rápido que o tempo limite de 20 minutos.
Existe uma maneira de detectar que a conexão SSH não foi feita após um determinado período de tempo, para que eu pudesse cancelar a tentativa de forma mais controlada?
Responder1
É necessário definir um tempo limite de conexão ConnectTimeout
assim:
-o ConnectTimeout=1200
Como a página de manual parassh_config
opções afirma:
Especifica o tempo limite (em segundos) usado ao conectar-se ao servidor SSH, em vez de usar o tempo limite TCP do sistema padrão. Este valor é usado somente quando o alvo está inativo ou realmente inacessível, e não quando recusa a conexão.
Então seria algo assim em uso:
ssh -o ConnectTimeout=1200 [email protected]
FWIW, o ConnectTimeout
valor – como muitas coisas em scripts como este – é definido em segundos. Então 1200 segundos equivalem a 20 minutos