avatar

Salut, je suis Mayeu

Je fais principalement de l'ordinateur, du thé, et des voyages

Available in English


Relancer une commande jusqu'à ce qu'elle réussisse

Régulièrement, je me retrouve à copier de gros fichiers via rsync, et étant donné que je suis souvent dans des endroits sans connexion Internet stable, je me retrouve à relancer rsync plusieurs fois jusqu’à la réussite de la commande.

Il est possible d’utiliser while pour ça, mais while continue de tourner tant que son test réussi, du coup il faut capturer le code de retour, tester la condition contraire, etc. Donc à moins de faire un petit script ça fait beaucoup à taper juste pour une commande ad hoc.

C’était sans compter sur l’existence de la commande until, qui vas continuer de relancer la commande tant qu’elle échoue.

Ça s’utilise de la manière suivante :

1
$ until <mettre la commande ici>; do echo "Retrying at `date -Iminutes`"; done

Donc avec rsync ça donne :

1
$ until rsync -aP src:/path/to/copy dest/; do echo "Retrying at `date -Iminutes`"; done

Et si vous êtes vraiment fainéant, vous pouvez toujours faire un alias (laissé en exercice pour le lecteur 😉).


Did you enjoy this article? Don't want to miss any new posts and get exclusive content? Then hop into my newsletter :)

You can also contact me directly via email: m [-at-] mayeu [-dot-] me