Aller au contenu
Administration Linux medium

Planifier une tâche unique avec at, atq et atrm

45 min de lecture

Vous n'avez pas toujours besoin de cron ou d'un timer systemd. Quand vous devez exécuter une action une seule fois dans 10 minutes, ce soir à 23 h, ou demain matin, at est l'outil le plus direct. Ce guide vous montre le trio at + atq + atrm avec des commandes testées en lab Linux.

  • Distinguer les usages de at et cron
  • Planifier une commande unique avec at
  • Lister la file d'attente avec atq
  • Supprimer une tâche planifiée avec atrm
  • Vérifier qu'une tâche a bien tourné
  • Éviter les erreurs classiques (service, droits, environnement)

at est utile quand une action doit être déclenchée plus tard, mais une seule fois :

  • relancer un service hors créneau de production ;
  • exécuter un script de nettoyage dans 15 minutes ;
  • lancer un contrôle d'intégrité cette nuit ;
  • programmer un rappel technique (mail, rapport, rotation).
  • Utilisez at pour une exécution ponctuelle.
  • Utilisez cron pour une exécution récurrente.

Exemple mental simple :

  • "Exécute ce script demain à 09:00" -> at
  • "Exécute ce script tous les jours à 09:00" -> cron

Ne présumez pas que at est là : sur une AlmaLinux 10 ou une RHEL 10 minimale, ni le paquet ni l'unité n'existent. Commencez par le vérifier.

Fenêtre de terminal
# Vérifier que le service atd est actif
systemctl status atd --no-pager

Vous devez voir Active: active (running).

Dans ce lab, on planifie une écriture dans un fichier de sortie.

Fenêtre de terminal
mkdir -p /tmp/at-lab
printf '%s\n' 'echo "AT_OK" >> /tmp/at-lab/output.txt' > /tmp/at-lab/job.sh
at -f /tmp/at-lab/job.sh now + 2 minutes

Sortie attendue (exemple) :

warning: commands will be executed using /bin/sh
job 9 at Mon Apr 20 21:24:00 2026
Fenêtre de terminal
atq

Sortie attendue (exemple) :

9 Mon Apr 20 21:24:00 2026 a bob
  • première colonne : identifiant du job ;
  • date/heure : exécution prévue ;
  • dernier champ : utilisateur propriétaire.
Fenêtre de terminal
# Remplacez 9 par l'identifiant réel
atrm 9
atq

Si la file est vide, atq ne retourne rien.

Étape 4 : vérifier l'exécution quand vous ne supprimez pas le job

Section intitulée « Étape 4 : vérifier l'exécution quand vous ne supprimez pas le job »

Planifiez une tâche et laissez-la s'exécuter :

Fenêtre de terminal
at -f /tmp/at-lab/job.sh now + 1 minute

Après ~1 minute :

Fenêtre de terminal
cat /tmp/at-lab/output.txt

Vous devez voir au moins une ligne AT_OK.

  • Utilisez des chemins absolus dans les scripts appelés par at.
  • Préférez un script (at -f script.sh) à une commande complexe inline.
  • Journalisez la sortie (>> /var/log/... 2>&1) pour faciliter le diagnostic.
  • Testez la commande en direct avant de la planifier.
SymptômeCause probableCorrection
at: command not foundpaquet non installésudo dnf install at ou sudo apt install at
systemctl is-enabled atd répond not-foundl'unité n'existe pas : le paquet n'est pas installéinstaller le paquet, puis enable --now
Le service est enabled mais inactive (dead)l'installation active sans démarrersudo systemctl start atd
Une heure déjà passée est acceptée sans avertissementat 9:00 soumis l'après-midi est reporté au lendemainVérifier avec atq ; un instant explicitement passé (now - 1 hour) est lui refusé
0815 interprété comme 08 h 15, pas le 15 aoûtforme horaire, pas une dateÉcrire la date explicitement (at 09:00 Aug 15)
La sortie de la tâche disparaîtaucun agent de courriel installé (Exec failed for mail command)Rediriger explicitement vers un fichier dans la commande planifiée
job jamais exécutéatd inactifsudo systemctl enable --now atd
job présent mais pas d'effetscript invalide ou PATH incompletutiliser chemins absolus, tester le script
You do not have permissionpolitique at.allow/at.denyvérifier /etc/at.allow et /etc/at.deny

Planifiez une tâche ponctuelle avec at sur une VM, puis vérifiez qu'elle s'exécute bien à l'heure prévue et que la file est correctement gérée.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • at planifie une tâche ponctuelle.
  • atq liste les tâches en attente.
  • atrm supprime une tâche planifiée.
  • Le service atd doit être actif.
  • En contexte admin/certif, at complète cron et timers.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn