
Tengo un script de implementación que usa SSH para conectarse a varios hosts. En ocasiones, un host estará bajo una carga tan severa que el intento ssh se bloqueará. Esto eventualmente provocará un tiempo de espera en la implementación, pero solo después de un período de tiempo muy largo.
Idealmente, me gustaría que el script fallara antes del tiempo de espera de 20 minutos.
¿Hay alguna manera de detectar que la conexión SSH no se ha realizado después de un cierto período de tiempo, para luego poder cancelar el intento de una manera más controlada?
Respuesta1
Tengo que considerar la posibilidad de establecer un tiempo de espera de conexión de ConnectTimeout
esta manera:
-o ConnectTimeout=1200
Como página de manual parassh_config
opciones estados:
Especifica el tiempo de espera (en segundos) utilizado al conectarse al servidor SSH, en lugar de utilizar el tiempo de espera TCP predeterminado del sistema. Este valor se utiliza sólo cuando el objetivo está inactivo o es realmente inalcanzable, no cuando rechaza la conexión.
Entonces, en uso, se vería así:
ssh -o ConnectTimeout=1200 [email protected]
FWIW, el ConnectTimeout
valor, como muchas cosas en scripts como este, se establece en segundos. Entonces 1200 segundos equivalen a 20 minutos.