Planifier une tâche avec la commande Linux at

Les ordinateurs sont bons en automatisation, mais tout le monde ne sait pas comment faire fonctionner l’automatisation. C’est un vrai luxe, cependant, de pouvoir planifier une tâche pour un ordinateur à un moment précis et de l’oublier ensuite. Peut-être que vous avez un fichier à télécharger ou à télécharger à un moment précis, ou vous devez traiter un lot de fichiers qui n’existent pas encore mais dont l’existence est garantie à un certain moment ou un paramètre qui doit être surveillé, ou peut-être avez-vous simplement besoin un rappel amical pour ramasser du pain et du beurre sur le chemin du retour du travail.
C’est ce que le at
la commande est pour.
Contents
Quelle est la commande Linux?
Le at
La commande est la méthode du terminal Linux qui vous permet de planifier des travaux ponctuels pour une heure et une date spécifiques. C’est l’automatisation spontanée facilitée depuis le terminal.
Installation à
Sous Linux, le at
La commande est probablement déjà installée. Vous pouvez vérifier qu’il est installé en utilisant le at -V
commander. Tant qu’une version est retournée, vous avez at
installée:
Should you try to use at
and the command isn’t found, most modern Linux distributions offer to install the missing at
package for you.
Scheduling a job interactively with at
When you use the at
command along with the time you want a task to run, you open an interactive at
prompt. You can enter commands you want to run at the time you specified.
If it helps, you can think of this process as a calendaring app, like the one you probably use on your mobile phone—first, you create an event on a day at some time, and then you specify what you want to happen.
For example, try scheduling a memo to yourself by creating a task for a few minutes in the future. Make the task simple to reduce the likelihood of failure. To exit the at
prompt, press Ctrl+D on your keyboard.
$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
Comme tu peux le voir, at
utilise des définitions de temps intuitives et naturelles. Vous n’avez pas besoin de connaître l’horloge de 24 heures ou de traduire les heures en UTC ou dans un format ISO spécifique. En général, vous pouvez utiliser n’importe quelle notation qui vous vient naturellement, comme midi, 13h30, 13:37, et ainsi de suite, pour décrire quand vous voulez qu’une tâche se produise.
Attendez quelques minutes puis vérifiez que votre tâche s’est exécutée en exécutant le cat
ou la tac
commande sur le fichier que vous avez créé :
$ cat ~/at-test.txt
hello world
Planification d’un travail avec à
Vous n’avez pas besoin d’utiliser l’invite interactive pour planifier des tâches avec at
. Vous pouvez à la place lui envoyer des commandes en utilisant echo
ou alors printf
. Dans cet exemple, j’utilise la notation à présent et dans combien de minutes je veux que la tâche soit retardée :
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
Après une minute, vérifiez que la nouvelle commande a été exécutée :
$ cat ~/at-test.txt
hello world
hello again
Expressions de temps
Le at
La commande est assez indulgente lors de l’interprétation des temps. Vous pouvez choisir entre plusieurs formats, selon celui qui vous convient le mieux :
YYMMDDhhmm
[.ss](année abrégée, mois, jour, heure, minute et éventuellement secondes)CCYYMMDDhhmm
[.ss](année complète, mois, jour, heure, minute et éventuellement secondes)now
midnight
noon
teatime
(16h00)AM
PM
Les heures et les dates peuvent être absolues ou ajouter un signe plus (+) pour les rendre relatifs à à présent. Lorsque vous spécifiez des heures relatives, vous pouvez utiliser des mots que vous utilisez probablement déjà :
minutes
hours
days
weeks
months
years
Syntaxe de l’heure et de la date
Le at
la commande est moins indulgente pour dire les heures à partir des dates. L’heure doit venir en premier, suivie du jour, bien que le jour soit par défaut le jour actuel et ne soit requis que lors de la planification d’une tâche pour un jour futur.
Voici quelques exemples d’expressions valides :
$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days
Affichage de votre file d’attente
Une fois que vous avez embrassé at
et que vous planifiez des tâches au lieu de griffonner des notes pour vous-même sur des bouts de papier qui traînent sur votre bureau, vous voudrez peut-être vérifier si vous avez encore des travaux dans la file d’attente.
Pour visualiser votre at
file d’attente, utilisez le atq
commander:
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
7 Tue Jul 27 00:00:00 2021 a tux
Pour supprimer une tâche de votre file d’attente, utilisez le atrm
commande avec le numéro de travail. Pour supprimer la tâche 7, par exemple :
$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
Pour voir ce qu’il y a réellement dans un travail planifié, vous devez regarder le at
bobine. Seul l’utilisateur root peut afficher le at
bobine, vous devez donc utiliser sudo
pour voir la bobine ou pour cat
le contenu de n’importe quel travail.
Planifiez avec Linux à
Le at
est un excellent moyen d’éviter d’oublier d’exécuter un travail plus tard dans la journée ou de laisser votre ordinateur exécuter un travail pour vous lorsque vous êtes absent. contrairement à cron
, il ne s’attend pas à ce qu’un travail doive s’exécuter selon un calendrier régulier à partir de maintenant jusqu’à la perpétuité, et sa syntaxe est par conséquent beaucoup plus simple que la cron
syntaxe.
La prochaine fois que vous avez un petit travail que vous voulez que votre ordinateur mémorise et gère, essayez le at
commander.