Les ordinateurs sont bons pour l'automatisation, mais tout le monde ne sait pas comment faire fonctionner l'automatisation. C'est un vrai luxe, cependant, de pouvoir programmer une tâche pour un ordinateur à un moment précis, puis de l'oublier. Vous avez peut-être un fichier à 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 avant un certain temps ou un paramètre nécessitant une surveillance, ou peut-être avez-vous simplement besoin un rappel amical de ramasser du pain et du beurre en rentrant du travail.
C'est ce que le at
la commande est pour.
Qu'est-ce que Linux aux commandes ?
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 une automatisation spontanée simplifiée depuis le terminal.
Installation sur
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
commande. Tant qu'une version est retournée, vous avez at
installé :
$ at -V
at version x.y.z
Devriez-vous essayer d'utiliser at
et la commande n'est pas trouvée, la plupart des distributions Linux modernes proposent d'installer le at
manquant paquet pour vous.
Vous devrez peut-être également démarrer le démon at, appelé atd
. Sur la plupart des systèmes Linux, vous utilisez la commande systemctl pour activer les services et les configurer pour qu'ils démarrent automatiquement à partir de maintenant :
$ sudo systemctl enable --now atd
Planifier une tâche de manière interactive avec at
Lorsque vous utilisez le at
commande avec l'heure à laquelle vous voulez qu'une tâche s'exécute, vous ouvrez un at
interactif rapide. Vous pouvez saisir les commandes que vous souhaitez exécuter à l'heure que vous avez spécifiée.
Si cela vous aide, vous pouvez considérer ce processus comme une application de calendrier, comme celle que vous utilisez probablement sur votre téléphone mobile. D'abord, vous créez un événement un jour à un moment donné, puis vous spécifiez ce que vous voulez qu'il se passe.
Par exemple, essayez de planifier un mémo pour vous-même en créant une tâche pour quelques minutes à l'avenir. Simplifiez la tâche pour réduire le risque d'échec. Pour quitter le at
invite, appuyez sur Ctrl+D sur votre clavier.
$ 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 vous pouvez 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. Généralement, vous pouvez utiliser n'importe quelle notation qui vous vient naturellement, comme midi , 13h30 , 13:37 , et ainsi de suite, pour indiquer quand vous souhaitez qu'une tâche se produise.
Attendez quelques minutes, puis vérifiez que votre tâche a été exécutée en exécutant le cat
ou le tac
commande sur le fichier que vous avez créé :
$ cat ~/at-test.txt
hello world
Planifier une tâche avec à
Vous n'avez pas besoin d'utiliser l'invite interactive pour planifier des tâches avec at
. Vous pouvez à la place lui rediriger des commandes en utilisant echo
ou printf
. Dans cet exemple, j'utilise la notation maintenant et combien de minutes à partir de maintenant je veux que la tâche soit retardée :
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
Au bout d'une minute, vérifiez que la nouvelle commande a bien été exécutée :
$ cat ~/at-test.txt
hello world
hello again
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Expressions temporelles
Le at
La commande est assez indulgente lors de l'interprétation des temps. Vous pouvez choisir entre de nombreux 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 à maintenant . 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 distinguer les heures des dates. L'heure doit venir en premier, suivie du jour, bien que le jour par défaut soit 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
Afficher votre file d'attente
Une fois que vous avez adopté at
et que vous planifiez des tâches au lieu de vous griffonner des notes 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 afficher votre at
file d'attente, utilisez le atq
commande :
$ 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 une tâche planifiée, vous devez regarder le at
bobine. Seul l'utilisateur root peut voir le at
spool, vous devez donc utiliser sudo
pour voir le spool ou pour cat
le contenu de n'importe quel travail.
Planifier avec Linux à
Le at
est un excellent moyen d'éviter d'oublier d'exécuter une tâche plus tard dans la journée ou de laisser votre ordinateur exécuter une tâche pour vous lorsque vous êtes absent. Contrairement à cron
, il est exempt de l'attente selon laquelle un travail doit s'exécuter selon un calendrier régulier à partir de maintenant jusqu'à perpétuité, et sa syntaxe est par conséquent beaucoup plus simple que le 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
commande.