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.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Distinguer les usages de
atetcron - 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)
Dans quel contexte ?
Section intitulée « Dans quel contexte ? »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).
at vs cron en 30 secondes
Section intitulée « at vs cron en 30 secondes »- Utilisez
atpour une exécution ponctuelle. - Utilisez
cronpour 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
Prérequis
Section intitulée « Prérequis »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.
# Vérifier que le service atd est actifsystemctl status atd --no-pagerVous devez voir Active: active (running).
Étape 1 : planifier une tâche unique avec at
Section intitulée « Étape 1 : planifier une tâche unique avec at »Dans ce lab, on planifie une écriture dans un fichier de sortie.
mkdir -p /tmp/at-labprintf '%s\n' 'echo "AT_OK" >> /tmp/at-lab/output.txt' > /tmp/at-lab/job.shat -f /tmp/at-lab/job.sh now + 2 minutesSortie attendue (exemple) :
warning: commands will be executed using /bin/shjob 9 at Mon Apr 20 21:24:00 2026Étape 2 : inspecter la file avec atq
Section intitulée « Étape 2 : inspecter la file avec atq »atqSortie 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.
Étape 3 : annuler un job avec atrm
Section intitulée « Étape 3 : annuler un job avec atrm »# Remplacez 9 par l'identifiant réelatrm 9atqSi 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 :
at -f /tmp/at-lab/job.sh now + 1 minuteAprès ~1 minute :
cat /tmp/at-lab/output.txtVous devez voir au moins une ligne AT_OK.
Bonnes pratiques
Section intitulée « Bonnes pratiques »- 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.
Dépannage rapide
Section intitulée « Dépannage rapide »| Symptôme | Cause probable | Correction |
|---|---|---|
at: command not found | paquet non installé | sudo dnf install at ou sudo apt install at |
systemctl is-enabled atd répond not-found | l'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émarrer | sudo systemctl start atd |
| Une heure déjà passée est acceptée sans avertissement | at 9:00 soumis l'après-midi est reporté au lendemain | Vérifier avec atq ; un instant explicitement passé (now - 1 hour) est lui refusé |
0815 interprété comme 08 h 15, pas le 15 août | forme horaire, pas une date | Écrire la date explicitement (at 09:00 Aug 15) |
| La sortie de la tâche disparaît | aucun agent de courriel installé (Exec failed for mail command) | Rediriger explicitement vers un fichier dans la commande planifiée |
| job jamais exécuté | atd inactif | sudo systemctl enable --now atd |
| job présent mais pas d'effet | script invalide ou PATH incomplet | utiliser chemins absolus, tester le script |
You do not have permission | politique at.allow/at.deny | vérifier /etc/at.allow et /etc/at.deny |
Mettre en pratique
Section intitulée « Mettre en pratique »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.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »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
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
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »atplanifie une tâche ponctuelle.atqliste les tâches en attente.atrmsupprime une tâche planifiée.- Le service
atddoit être actif. - En contexte admin/certif,
atcomplètecronettimers.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Compétences RHCSA essentielles : Visualiser les objectifs de planification et d'exploitation attendus à l'examen.