La planification de tâches sous Linux est une compétence essentielle pour tout administrateur système ou développeur souhaitant automatiser des opérations répétitives — qu’il s’agisse de sauvegardes, de mises à jour, de nettoyages de logs ou de scripts de maintenance. Deux commandes principales permettent cela : cron (pour les tâches récurrentes) et at (pour les tâches ponctuelles).
1. Comprendre les outils de planification
a) Cron : pour les tâches répétées
cron
est un démon (service en arrière-plan) qui exécute des commandes à intervalles réguliers. Ces intervalles sont définis dans une table appelée crontab.
b) At : pour une exécution unique
at
permet de lancer une tâche une seule fois, à un moment précis dans le futur. C’est pratique pour des opérations planifiées mais non récurrentes (par exemple, redémarrer un service demain à 3 h du matin).
2. Le fonctionnement de cron
Chaque utilisateur possède sa propre crontab, accessible via la commande :
crontab -e
Pour afficher les tâches existantes :
crontab -l
Structure d’une ligne crontab
Chaque ligne correspond à une tâche planifiée, avec la syntaxe suivante :
* * * * * commande
│ │ │ │ │
│ │ │ │ └── Jour de la semaine (0–7, 0 et 7 = dimanche)
│ │ │ └──── Mois (1–12)
│ │ └────── Jour du mois (1–31)
│ └──────── Heure (0–23)
└────────── Minute (0–59)
Exemples pratiques
Objectif | Syntaxe | Description |
---|---|---|
Exécuter un script toutes les 5 minutes | */5 * * * * /home/user/script.sh | Boucle toutes les 5 minutes |
Lancer une sauvegarde tous les jours à minuit | 0 0 * * * /home/user/backup.sh | Tous les jours à 00:00 |
Nettoyer les logs chaque dimanche à 3h | 0 3 * * 0 rm /var/log/*.log | Le dimanche à 3h |
Envoyer un rapport le 1er du mois à 8h | 0 8 1 * * /home/user/report.sh | Chaque 1er du mois |
3. Le fonctionnement de at
Pour programmer une tâche ponctuelle avec at
:
at 03:00 tomorrow
Puis entrez la commande à exécuter (exemple : shutdown -r now
) et validez avec Ctrl+D
.
Pour lister les tâches planifiées :
atq
Pour supprimer une tâche :
atrm [numéro_de_tâche]
4. Bonnes pratiques de planification
- Spécifiez les chemins absolus (ex.
/usr/bin/python
au lieu depython
). - Redirigez les sorties et erreurs vers un fichier log pour le débogage :
* * * * * /home/user/script.sh >> /home/user/script.log 2>&1
- Vérifiez les permissions : le script doit être exécutable (
chmod +x script.sh
). - Utilisez l’environnement correct :
cron
ne charge pas le profil utilisateur (.bashrc
), donc exportez les variables nécessaires directement dans la tâche. - Testez vos commandes manuellement avant de les automatiser.
5. Alternatives et outils modernes
- systemd timers : plus puissants et flexibles que
cron
, avec journalisation native. - anacron : permet d’exécuter les tâches manquées (utile pour les machines qui ne tournent pas 24/7).
- atd : service qui exécute les commandes
at
.
6. Conclusion
Programmer des tâches planifiées sous Linux, c’est automatiser l’intendance du système et gagner du temps au quotidien.
Que vous utilisiez cron
pour des scripts réguliers ou at
pour une tâche unique, l’important est de bien comprendre leur logique, de tester vos scripts, et de surveiller les journaux d’exécution.
En maîtrisant ces outils, vous franchirez une étape clé vers l’automatisation et l’efficacité dans la gestion de vos environnements Linux.
Sources d’inspiration : Tecmint, IOFlood, RunCloud, Stackscale, GeeksforGeeks, EverythingDevOps, RedSwitches, LinuxJournal, Opensource.com, CBT Nuggets, Medium, et d’autres références techniques sur la planification de tâches Linux.