GNU/Linux >> Tutoriels Linux >  >> Linux

Planifier une tâche avec la commande Linux at

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 midi13h3013: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.


Linux
  1. Planification des tâches avec la commande Linux cron

  2. Diagnostiquer les problèmes de connectivité avec la commande Linux ping

  3. Regardez les commandes et les tâches avec la commande Linux watch

  4. Comment utiliser la commande 'at' pour planifier une tâche à une heure donnée ou ultérieure sous Linux

  5. Trouver le temps d'exécution d'une commande ou d'un processus sous Linux

15 Commande Linux ps avec exemples

Suivi du temps avec Timewarrior en ligne de commande

Comment rechercher des fichiers avec la commande fd sous Linux

La commande timer sous Linux

Planifier des travaux sous Linux avec la commande 'at'

Comprendre la commande time sous Linux