Cron Job
A cron job is a time-based job scheduler in Unix-like operating systems that allows users to execute commands or scripts automatically at specified intervals or...
Un cron job est un planificateur de tâches basé sur le temps dans les systèmes d'exploitation de type Unix. Il permet aux utilisateurs de planifier l'exécution automatique de commandes ou de scripts à des moments, dates ou intervalles spécifiés. Le composant central est le démon cron, un processus d'arrière-plan qui vérifie constamment les fichiers de configuration définis par l'utilisateur, connus sous le nom de crontabs, pour les tâches planifiées. Chaque utilisateur peut avoir son propre fichier crontab, et il existe également des fichiers crontab système. La syntaxe pour définir un cron job comprend cinq champs de temps et de date suivis de la commande à exécuter : minute (0-59), heure (0-23), jour du mois (1-31), mois (1-12) et jour de la semaine (0-7, où 0 et 7 représentent tous deux le dimanche). Un astérisque () dans un champ indique "toutes les valeurs possibles" pour ce champ. Par exemple, 0 2 /path/to/script.sh exécuterait le script /path/to/script.sh tous les jours à 2h00 du matin. Les cron jobs sont essentiels pour automatiser les tâches de routine telles que la maintenance du système, les sauvegardes, la synchronisation des données, la génération de rapports et l'envoi de notifications périodiques. Une mauvaise configuration peut entraîner des tâches manquées ou une exécution involontaire, soulignant la nécessité d'une planification et de tests minutieux.
graph LR
Center["Cron Job"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique-moi comme si j'avais 5 ans
C'est comme régler un réveil pour que votre ordinateur fasse automatiquement une corvée, comme sortir les poubelles ou arroser les plantes, à une heure précise.
🤓 Expert Deep Dive
Cron, dérivé du mot grec 'chronos' (temps), est un utilitaire fondamental pour l'automatisation des tâches dans les systèmes de type Unix. Le démon cron (crond) se réveille chaque minute pour vérifier les fichiers crontab afin de trouver les tâches planifiées pour cette minute. Les fichiers crontab contiennent des entrées spécifiant la planification (champs temporels) et la commande ou le script à exécuter. La spécification de l'heure utilise une syntaxe spécifique : * commande. Chaque astérisque représente une unité de temps : minute, heure, jour du mois, mois, jour de la semaine. Des caractères spéciaux comme les virgules (listes), les tirets (plages) et l'astérisque (caractère générique) offrent de la flexibilité. Les crontabs système (par exemple, /etc/crontab, /etc/cron.d/) permettent les tâches d'administration système, tandis que les crontabs utilisateur (crontab -e) sont destinées aux tâches des utilisateurs individuels. Les variables d'environnement et le contexte d'exécution des cron jobs peuvent différer considérablement des shells interactifs, entraînant souvent des problèmes si les scripts ne sont pas conçus pour être indépendants de l'environnement (par exemple, en spécifiant les chemins complets vers les exécutables). Anacron est un utilitaire connexe conçu pour exécuter des tâches qui auraient pu être manquées en raison de l'extinction du système, ce qui le rend adapté aux ordinateurs portables ou aux systèmes connectés de manière intermittente.