🎩 Les Tâches Planifiées sous Linux Debian : Cron, At et le doux parfum de l’automatisation
Bienvenue dans le monde merveilleux (et légèrement inquiétant) des tâches planifiées sous Linux Debian. Ici, les scripts s’exécutent sans surveillance humaine, les serveurs bossent pendant que vous dormez, et parfois, une étoile mal placée dans un fichier suffit à plonger tout un système dans le chaos. Aujourd’hui, nous explorons les entrailles de cron et at avec rigueur, précision, et une touche d’humour noir.
🧠 Cron : le démon qui ne dort jamais
cron
est un démon, c’est-à-dire un programme qui tourne en arrière-plan. Sa mission : exécuter des commandes à des moments précis, définis par l’utilisateur ou le système. Il consulte régulièrement sa liste de tâches (les crontabs), et si l’heure est venue, il agit. Sans discuter. Sans pitié.
⚙️ Syntaxe de la crontab
* * * * * /chemin/vers/commande
Chaque astérisque correspond, dans l’ordre, à :
- Minute (0–59)
- Heure (0–23)
- Jour du mois (1–31)
- Mois (1–12)
- Jour de la semaine (0 = dimanche)
👨💻 Exemples
30 2 * * * /usr/local/bin/backup.sh
Lance backup.sh
chaque jour à 2h30.
🛠️ Gérer ses crontabs
crontab -e
: éditer votre crontabcrontab -l
: afficher vos tâches planifiéescrontab -r
: supprimer toutes vos tâches (avec regrets)
📁 Crontabs système
/etc/crontab
: contient aussi l’utilisateur qui exécute la tâche/etc/cron.d/
: fichiers de tâches séparés, très utilisés par les paquets Debian/etc/cron.daily/
,cron.hourly/
, etc. : scripts lancés à intervalle régulier
🔍 Où vont les sorties ?
Par défaut, la sortie standard est envoyée par mail (si un système de mail local est configuré). Sinon, redirigez vers un fichier :
0 3 * * * /usr/local/bin/script.sh >> /var/log/script.log 2>&1
👮 Sécurité
Utilisez /etc/cron.allow
et /etc/cron.deny
pour restreindre l’accès à cron. Vérifiez toujours les permissions des scripts. N’exécutez jamais aveuglément un script root téléchargé sur un forum obscur.
🪦 Debugging : quand cron échoue en silence
- Vérifiez
/var/log/syslog
ou/var/log/cron.log
- Utilisez des chemins absolus
- Testez manuellement chaque commande avant de l’ajouter à une crontab
⏰ At : pour les tâches ponctuelles (ou les vengeances programmées)
at
permet de planifier une tâche unique à exécuter dans le futur. Idéal pour exécuter un script dans 10 minutes, ou à 3h17 précises, juste pour embêter un collègue (avec modération).
📌 Exemple basique
echo "/home/user/script.sh" | at now + 10 minutes
Exécute script.sh
dans 10 minutes.
🧾 Syntaxes utiles
at 15:00
: aujourd’hui à 15hat 3pm tomorrow
at midnight
🕵️ Suivre et gérer les jobs at
atq
: liste des tâches en attenteatrm <numéro>
: supprimer une tâche
🔐 Sécurité
Même logique que cron : les fichiers /etc/at.allow
et /etc/at.deny
gèrent les autorisations.
🎬 En résumé
Outil | Utilité |
---|---|
cron | Planification récurrente |
at | Exécution ponctuelle dans le futur |
Que vous utilisiez cron
pour des backups nocturnes ou at
pour déclencher un redémarrage à distance juste avant une réunion importante (expérience non recommandée), maîtriser ces outils, c’est reprendre le contrôle du temps. Et accessoirement éviter que votre serveur ne tombe le jour où vous êtes en week-end prolongé.
Bonne planification, et que les logs soient avec vous.