230 votes

Comment configurer SSH délai d'attente en script shell

Je suis l'exécution d'un script de connexion par mot de passe de moins en SSH sur une machine distante. Je veux définir un délai d'expiration, de sorte que si l'hôte distant est de prendre un temps infini à courir, je veux comeout de cette session ssh et continuer les autres lignes dans mon script sh.

Aucune idée sur comment le faire?

378voto

user57421 Points 847
ssh -o ConnectTimeout=10  <hostName>

Où 10 est le temps en secondes.

116voto

Doug Points 481

Utiliser l' -o ConnectTimeout et -o BatchMode=yes -o StrictHostKeyChecking=no .

ConnectTimeout garde le script à partir de la pendaison, BatchMode la garde de la pendaison avec l'Hôte inconnu, OUI pour ajouter à known_hosts et StrictHostKeyChecking ajoute l'empreinte automatiquement.

0voto

Eduardo Points 2140

Eh bien, vous pourriez utiliser nohup pour exécuter tout ce que vous êtes en cours d'exécution sur le "non-blocage de la mode". De sorte que vous pouvez garder le contrôle si tout ce qu'il était censé courir, a couru, sinon la sortie.

nohup ./my-script-that-may-take-long-to-finish.sh et
./check-if-previous-script-ran-or-exit.sh

echo "le Script terminé le 15 Février 2011, 9:20" > /tmp/done.txt

Ainsi, dans la deuxième celle que vous venez de vérifier si le fichier existe.

-3voto

ayush Points 6352

comment au sujet de l'utilisation de cette commande dans la boucle

set timeout -1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X