Je voudrais créer une boucle qui répète un transfert ncftp s'il renvoie une erreur.
Je ne sais pas trop comment la variable de code de sortie peut être utilisée dans une boucle. Quelque chose comme ce travail?
until [$? == 0]; do
ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file
done
Réponses:
J'ai trouvé la base de cette élégante boucle ailleurs sur serverfault. Il s'avère qu'il n'est pas nécessaire d'enregistrer le code de sortie, car vous pouvez tester directement sur la commande elle-même;
la source
Presque. Vous feriez probablement mieux d'enregistrer la valeur de retour en tant que variable afin de pouvoir la prérégler avant la boucle. Sinon, il sera affecté par la commande de dernière exécution.
Vous voudrez peut-être également
sleep
y accrocher un pour l'empêcher de se reproduire trop rapidement.la source
Bit hacky mais ma solution était de simplement créer une fonction bash qui s'exécute si elle se termine avec un échec
la source
Vous pouvez faire une boucle pendant que votre commande renvoie une erreur:
la source