Cron est un service de planification de tâches basé sur le temps présent dans les systèmes d'exploitation de type Unix. Les utilisateurs planifient des tâches (commandes ou scripts) pour qu'elles s'exécutent périodiquement à des heures, des dates ou des intervalles fixes.
L'origine et les débuts de l'histoire de Cron
La première implémentation de cron remonte à la version 7 d'Unix. Le terme « cron » vient du mot grec signifiant temps, « chronos ». Cette version d'Unix, publiée en 1979, disposait d'un simple programme cron qui exécutait des tâches à intervalles spécifiés. Les fonctionnalités de Cron ont ensuite été étendues par Paul Vixie en 1987. Cette version, connue sous le nom de Vixie Cron, est la version la plus couramment installée aujourd'hui et c'est la version à laquelle on fait généralement référence lorsque les gens mentionnent « Cron ».
Développer le concept de Cron
Cron permet aux utilisateurs d'automatiser la maintenance ou l'administration du système, même si sa nature polyvalente le rend utile pour des tâches telles que le téléchargement de fichiers depuis Internet et le téléchargement de courriers électroniques à intervalles réguliers. Un environnement cron est comme un bac à sable dans lequel les tâches cron sont exécutées à partir de l'environnement shell standard.
Chaque utilisateur peut avoir sa propre crontab, et bien qu'il s'agisse de fichiers dans /var/spool/, ils ne sont pas destinés à être modifiés directement. La syntaxe des expressions cron peut être décomposée en deux types principaux de syntaxe : la syntaxe cron Unix et une syntaxe plus complexe connue sous le nom de syntaxe d'expression cron ou syntaxe cron quartz.
La structure interne de Cron et son fonctionnement
Cron fonctionne sur la base d'un fichier de configuration simple mais puissant appelé fichier « crontab ». Ce fichier contient une ligne pour chaque tâche à exécuter, composée de cinq champs d'heure et de date, suivie d'une commande à exécuter à des heures spécifiées.
Les cinq champs représentent :
- Minutes après l'heure (0 – 59)
- Heures dans une journée (0 – 23)
- Jours dans un mois (1 – 31)
- Mois dans une année (1 – 12)
- Jours de la semaine (0 à 7, où 0 et 7 sont dimanche)
Le champ de commande contient la tâche à exécuter aux heures spécifiées dans les cinq premiers champs.
Principales fonctionnalités de Cron
Les principales fonctionnalités de Cron incluent :
- Il permet aux tâches de s'exécuter automatiquement en arrière-plan à intervalles réguliers.
- Il fournit une plateforme flexible pour planifier des tâches (scripts ou commandes) avec diverses unités de temps.
- Chaque utilisateur peut avoir son propre fichier crontab.
- Les tâches Cron peuvent être planifiées pour s'exécuter à la minute, à l'heure, au jour de la semaine, au jour du mois et au mois de l'année.
- Cron fournit un moyen simple et efficace d'automatiser diverses tâches système.
Types de Cron
Les tâches Cron peuvent généralement être classées comme suit :
Taper | Description |
---|---|
Redémarrer | S'exécute une fois au démarrage. |
Anacron | S'exécute à des intervalles spécifiés en jours. |
Système Cron | Stockés dans /etc/crontab et dans le répertoire /etc/cron.d/, ceux-ci sont destinés à être utilisés à l'échelle du système. |
Cron de l'utilisateur | Chaque utilisateur peut avoir le sien, et ils sont stockés dans /var/spool/cron/crontabs/. |
Utilisation de Cron, problèmes et leurs solutions
Cron est utile pour automatiser des tâches, mais il peut entraîner des problèmes s'il n'est pas utilisé avec précaution. Par exemple, une tâche cron mal configurée peut entraîner une utilisation élevée du processeur. De plus, cron envoie uniquement par courrier électronique le résultat de ses tâches, le cas échéant, à l'utilisateur sous lequel il exécute les tâches. Cela pourrait entraîner des erreurs manquées s’il n’est pas vérifié régulièrement.
Les solutions courantes à ces problèmes incluent :
- Vérifier régulièrement l'utilisation élevée du processeur et reconfigurer ou arrêter les tâches inutiles.
- Assurez-vous que toutes les commandes et tous les scripts s'exécutent correctement avant de les définir comme tâches cron.
- Redirection de la sortie vers un fichier journal ou configuration d'un serveur de messagerie pour surveiller plus efficacement les tâches cron.
Comparaisons avec des outils similaires
Il existe d'autres planificateurs de tâches similaires à cron, tels que les minuteries anacron et systemd. Les principales différences entre ceux-ci peuvent être résumées comme suit :
Outil | Description |
---|---|
Cron | Convient aux tâches à exécuter à des moments précis de la journée. N'exécute pas les tâches manquées. |
Anacron | Convient aux tâches à exécuter une fois par jour/hebdomadaire/mensuelle. Exécutera les tâches manquées lorsque la machine sera de nouveau en ligne. |
Systèmed | Convient aux scénarios plus complexes car il offre plus d’options et s’intègre bien aux distributions Linux modernes. |
Perspectives futures et technologies associées
À mesure que les systèmes basés sur Unix continuent d'évoluer, Cron évolue également. Malgré l'émergence de planificateurs de tâches plus avancés comme systemd, la simplicité et la puissance de Cron garantissent qu'il reste couramment utilisé aujourd'hui.
La tendance récente vers les applications conteneurisées et les architectures de microservices a également donné naissance à de nouvelles façons d'utiliser Cron. Par exemple, Kubernetes, une plate-forme d'orchestration de conteneurs populaire, possède une fonctionnalité connue sous le nom de CronJobs qui s'apparente à Cron dans les systèmes basés sur Unix.
Serveurs proxy et Cron
Les serveurs proxy peuvent être utilisés efficacement en combinaison avec Cron pour automatiser certaines tâches. Par exemple, si vous disposez d'un script qui doit accéder régulièrement à un site Web ou à une API via un serveur proxy, vous pouvez configurer une tâche cron pour exécuter ce script à des intervalles spécifiés.
Cron pourrait également être utilisé pour faire tourner les proxys à des intervalles spécifiés, réduisant ainsi le risque de blocage d'un proxy unique. Par exemple, les services proxy de OneProxy peuvent être automatisés avec Cron pour des tâches telles que la récupération de données, l'automatisation des tâches sur les réseaux sociaux, etc.
Liens connexes
Pour plus d’informations sur Cron, consultez les ressources suivantes :