image de chargement
Retour au glossaire

Cron Job

Tâche automatisée planifiée qui s'exécute à intervalles réguliers sur un système Unix/Linux, essentielle pour l'automatisation des opérations.

Mis à jour le 25 janvier 2026

Un Cron Job est une tâche planifiée qui s'exécute automatiquement à des moments prédéfinis sur les systèmes Unix et Linux. Utilisant le démon cron, il permet d'automatiser des opérations répétitives comme les sauvegardes, la maintenance système, l'envoi d'emails ou le nettoyage de fichiers temporaires. Cette technologie est fondamentale pour la gestion efficace des infrastructures modernes.

Fondements

  • Syntaxe crontab avec 5 champs temporels (minute, heure, jour du mois, mois, jour de la semaine) suivis de la commande à exécuter
  • Démon cron qui vérifie la table des tâches planifiées chaque minute pour déclencher les jobs correspondants
  • Fichiers de configuration stockés dans /etc/crontab ou /var/spool/cron/crontabs selon les utilisateurs
  • Gestion des permissions utilisateur avec des crontabs individuelles et système pour sécuriser l'exécution

Avantages

  • Automatisation complète éliminant les interventions manuelles répétitives et réduisant les erreurs humaines
  • Flexibilité maximale dans la planification avec support de patterns complexes et expressions temporelles variées
  • Fiabilité éprouvée sur des décennies avec une implémentation stable présente sur tous les systèmes Unix/Linux
  • Faible consommation de ressources système avec un overhead minimal comparé aux solutions alternatives
  • Logging intégré facilitant le débogage et l'audit via syslog ou fichiers de sortie personnalisés

Exemple concret

crontab-examples.sh
# Éditer la crontab de l'utilisateur courant
crontab -e

# Sauvegarde quotidienne à 2h30 du matin
30 2 * * * /usr/local/bin/backup-database.sh >> /var/log/backup.log 2>&1

# Nettoyage des fichiers temporaires tous les dimanches à minuit
0 0 * * 0 find /tmp -type f -mtime +7 -delete

# Vérification du statut serveur toutes les 15 minutes
*/15 * * * * /usr/local/bin/health-check.sh

# Rapport mensuel le 1er de chaque mois à 9h
0 9 1 * * /usr/local/bin/monthly-report.py --email admin@example.com

# Redémarrage hebdomadaire le lundi à 3h (maintenance)
0 3 * * 1 /usr/sbin/service application restart

# Lister les cron jobs actifs
crontab -l

Mise en œuvre

  1. Identifier les tâches répétitives nécessitant une automatisation et définir leur fréquence d'exécution optimale
  2. Créer les scripts d'exécution en bash, Python ou autre langage, en incluant la gestion des erreurs et le logging
  3. Tester manuellement chaque script pour valider son fonctionnement avant la planification automatique
  4. Définir la syntaxe crontab appropriée en utilisant des outils comme crontab.guru pour vérifier les expressions
  5. Ajouter la tâche via 'crontab -e' en spécifiant les chemins absolus pour les commandes et fichiers
  6. Configurer la redirection de sortie (stdout/stderr) vers des fichiers de logs pour faciliter le monitoring
  7. Surveiller l'exécution via les logs système et mettre en place des alertes en cas d'échec
  8. Documenter chaque cron job avec des commentaires dans la crontab pour faciliter la maintenance future

Conseil pro

Utilisez toujours des chemins absolus dans vos cron jobs car l'environnement d'exécution est minimal (PATH limité). Définissez les variables d'environnement nécessaires en début de crontab (PATH, SHELL, MAILTO) et testez vos scripts avec 'env -i' pour simuler l'environnement cron restreint. Pour les applications critiques, implémentez un mécanisme de verrouillage (flock) pour éviter les exécutions concurrentes.

Outils associés

  • crontab.guru - Éditeur et validateur visuel d'expressions cron avec explications en langage naturel
  • systemd timers - Alternative moderne aux cron jobs sur les systèmes Linux récents avec meilleure gestion des dépendances
  • anacron - Extension de cron pour les machines non allumées 24/7, exécutant les tâches manquées au démarrage
  • cronie - Implémentation moderne de cron avec support amélioré des notifications et de la sécurité
  • Kubernetes CronJobs - Équivalent cloud-native pour orchestrer des tâches planifiées dans des conteneurs
  • cron-utils - Bibliothèque Java pour parser, valider et manipuler des expressions cron programmatiquement

Les Cron Jobs demeurent un pilier incontournable de l'automatisation système, offrant une solution éprouvée, légère et universelle pour orchestrer les tâches récurrentes. Leur maîtrise permet de réduire significativement les coûts opérationnels, d'améliorer la fiabilité des infrastructures et de libérer les équipes techniques pour des activités à plus forte valeur ajoutée. Dans un contexte DevOps moderne, ils s'intègrent parfaitement aux pipelines CI/CD et aux stratégies d'Infrastructure as Code.

L'argentestdéjàsurlatable.

En 1 heure, découvrez exactement combien vous perdez et comment le récupérer.

Agence de développement web, automatisation & IA

contact@peaklab.fr
Newsletter

Recevez nos conseils tech et business directement dans votre boîte mail.

Suivez-nous