Guide technique — Automatisation système

Planification de tâches
avec Crontab

Cron — le planificateur de tâches Unix. Ce guide couvre l'installation, la syntaxe des expressions cron, les exemples courants et les bonnes pratiques.

Auteur
EHAVOX
Mise à jour
06 / 01 / 2026
Système
Debian / Ubuntu
Sommaire
01

Installation du service Cron

Sur Debian / Ubuntu, le service cron est souvent préinstallé. Vérifiez et installez si nécessaire :

bash
sudo apt update
sudo apt install cron -y

Vérifier que le service est actif :

bash
sudo systemctl status cron
02

Syntaxe crontab

Ouvrez la table des tâches planifiées de l'utilisateur courant avec l'éditeur par défaut :

bash
# Ouvrir en édition
crontab -e

# Lister les tâches existantes
crontab -l

Une ligne crontab se compose de 5 champs temporels suivis de la commande à exécuter :

*
Minute
0 – 59
*
Heure
0 – 23
*
Jour/mois
1 – 31
*
Mois
1 – 12
*
Jour/semaine
0 – 7
Commande
/chemin/script.sh
Info
Un astérisque * signifie "toutes les valeurs" pour ce champ. Le jour de la semaine 0 et 7 correspondent tous deux au dimanche.

Opérateurs spéciaux utilisables dans les champs :

  • * — toutes les valeurs (ex : chaque minute, chaque heure)
  • , — liste de valeurs (ex : 1,15,30 pour les minutes 1, 15 et 30)
  • - — plage de valeurs (ex : 9-17 pour chaque heure de 9h à 17h)
  • / — pas d'incrémentation (ex : */5 pour toutes les 5 minutes)
03

Exemples pratiques

Expression Description
0 2 * * * Chaque jour à 2h00 du matin
*/5 * * * * Toutes les 5 minutes
0 9-17 * * 1-5 Toutes les heures de 9h à 17h, du lundi au vendredi
0 0 1 * * Le 1er de chaque mois à minuit
30 23 * * 0 Chaque dimanche à 23h30
0 4 * * 1,4 Tous les lundis et jeudis à 4h00
@reboot Au démarrage du système (raccourci spécial)

Exemple complet — exécuter un script de sauvegarde chaque jour à 2h, avec journalisation :

crontab
# Sauvegarde quotidienne à 2h00 — sorties redirigées vers un log
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1
Astuce
Pour construire et tester des expressions cron visuellement, utilisez crontab.guru — il affiche en temps réel la prochaine date d'exécution de votre expression.
04

Gestion du service

bash
# Activer le démarrage automatique au boot
sudo systemctl enable cron

# Démarrer le service
sudo systemctl start cron

# Redémarrer après modification
sudo systemctl restart cron

Pour les tâches planifiées qui s'appliquent à tout le système (pas seulement à un utilisateur), éditez le crontab système :

bash
# Crontab système — inclut un champ "utilisateur" supplémentaire
sudo nano /etc/crontab
Info
Le fichier /etc/crontab utilise un format légèrement différent — il comporte un 6ème champ entre l'expression temporelle et la commande, indiquant l'utilisateur sous lequel la tâche sera exécutée.
05

Astuces & bonnes pratiques

  • Journaliser les sorties — redirigez stdout et stderr vers un fichier log avec >> /var/log/script.log 2>&1 pour pouvoir diagnostiquer les erreurs.
  • Vérifier les logs cron — consultez /var/log/syslog pour voir l'historique d'exécution de toutes les tâches cron du système.
  • Limiter les permissions des scripts — appliquez chmod 700 sur vos scripts pour qu'ils ne soient exécutables que par leur propriétaire.
  • Utiliser des chemins absolus — dans les commandes cron, toujours utiliser le chemin complet vers les exécutables (ex : /usr/bin/python3 et non python3) car cron n'hérite pas du PATH utilisateur.
  • Tester avant de planifier — exécutez votre script manuellement en ligne de commande avant de l'intégrer dans crontab pour vérifier son bon fonctionnement.
Attention
Cron n'envoie pas de notification en cas d'échec d'une tâche. Sans redirection des logs, les erreurs passent inaperçues. Journalisez systématiquement les sorties de vos scripts critiques.