Planifier des commandes Linux avec `at`
Traductions
Comme je prĂ©pare et exĂ©cute beaucoup de scripts, j’ai parfois besoin d’exĂ©cuter un script Ă une heure prĂ©cise de la journĂ©e.
Lorsqu’un script ne doit ĂȘtre exĂ©cutĂ© qu’une seule fois, cron
n’est pas une solution viable.
J’ai donc dĂ©couvert le planificateur at
.
Vous devez d’abord l’installer, en utilisant apt
comme d’habitude pour les utilisateurs de debian, ubuntu ou autre dĂ©rivĂ©s :
$ sudo apt install at
Planifier l’exĂ©cution d’une commande
- utilisez la commande
at
avec une heure / date - saisissez les commandes Ă exĂ©cuter dans l’invite
- tapez CTRL+D pour quitter (^D)
$ at 9AM
warning: commands will be executed using /bin/sh
at> cd workspaces/github/dotfiles
at> git pull
at> < EOT >
job 1 at Sat Apr 16 09:00:00 2022
Cet exemple va rĂ©cupĂ©rer le contenu d’un dĂ©pĂŽt Ă 9h demain matin !
at
prend en charge de nombreuses spécifications de temps.
Voici un extrait de sa page de manuel :
At permet d’indiquer l’heure de lancement de maniĂšre assez complexe, en extension de la norme POSIX.2. Il accepte des spĂ©cifications de la forme HH:MM pour exĂ©cuter un travail Ă une heure donnĂ©e de la journĂ©e en cours (ou du lendemain si l’heure mentionnĂ©e est dĂ©jĂ dĂ©passĂ©e). On peut aussi lui fournir l’un des arguments suivants : midnight (minuit), noon (midi), ou teatime (l’heure du thĂ©, soit 16 heures). Il est Ă©galement possible de fournir un suffixe du type AM (matin), ou PM (aprĂšs-midi) avec une heure sur un cadran de 12 heures.
Les commandes sont exĂ©cutĂ©es avec le compte de l’utilisateur connectĂ©, en utilisant un shell /bin/sh
.
Il utilisera les variables d’environnement disponibles du shell au moment oĂč la commande at
est exĂ©cutĂ©e, et se placera dans le rĂ©pertoire courant avant d’exĂ©cuter votre script.
Voir les commandes planifiées
$ atq
1 Sat Apr 16 09:00:00 2022 a jwittouck
Voir les dĂ©tails d’une tĂąche
$ at -c 1
cd /home/jwittouck || {
echo 'Répertoire d'exécution inaccessible' >&2
exit 1
}
cd workspaces/github/dotfiles
git pull
Supprimer une tĂąche
$ atrm 1