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 »# 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é | installer le paquet at |
| 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 |
À 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.
Prochaines étapes
Section intitulée « Prochaines étapes » Planifier des tâches avec cron Passer de la tâche unique à la planification récurrente.
Planifier avec systemd timers Alternative moderne à cron, intégrée à systemd et journalctl.
Compétences RHCSA essentielles Visualiser les objectifs de planification et d'exploitation attendus à l'examen.