cron

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

cron est un programme qui permet aux utilisateurs des systèmes Unix d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l’avance, ou selon un cycle défini à l’avance.

Origine[modifier | modifier le code]

Le concept de ce programme trouve son origine dans les systèmes Unix de Berkeley et AT&T, puis a été rationalisé par Paul Vixie. L’idée de départ était d’avoir un service qui se réveille chaque minute, analyse un ensemble de fichiers dans un répertoire particulier, et détermine à partir de là si telles commandes shell doivent être exécutées dans ce laps de temps.

Cron[modifier | modifier le code]

Cron est le diminutif de crontab qui est le diminutif de chrono table qui signifie table de planification (en grec chronos (χρόνος) signifie le temps[1],[2]).

Il s’agit d’une fonctionnalité très utile pour des tâches routinières d’administration système, mais elle peut très bien être exploitée pour tout autre chose. Par exemple, on peut demander à cron de jouer tel fichier ogg tous les jours à sept heures sauf le samedi et le dimanche afin de se réveiller en musique.

cron est un daemon, ce qui, dans le jargon informatique, désigne un programme qu’on ne lance qu’une seule fois après le démarrage de l’ordinateur et qui reste en tâche de fond en attendant qu’on ait besoin de lui. Le service cron (crond) attend ainsi jusqu’au moment spécifié dans le fichier de configuration (que l’on appelle la crontab) puis effectue l’action correspondante et se rendort jusqu’à l’événement suivant.

Le service cron est lancé par le compte root afin de pouvoir s’adapter à l’identité de chacun des utilisateurs. Sur certains Unix, si on le tue (par la commande kill), il est automatiquement relancé par le système.

GNU mcron[modifier | modifier le code]

mcron n’est pas une implémentation à proprement parler dudit programme mais une évolution majeure codée en langage Scheme. Il supporte non seulement la méthode traditionnelle, mais également des fichiers de configuration écrits en Scheme, ce qui lui confère une certaine souplesse pour définir les tâches à réaliser (il pourrait par exemple prendre en compte la charge système). La nouveauté vient de sa capacité de lire toutes les instructions requises, de traiter celles qui doivent être ensuite exécutées et de se mettre en veille dans le laps de temps imparti. À son réveil, les commandes sont exécutées et le moment du prochain traitement est alors calculé. Les spécifications de ce nouveau programme sont écrites dans un langage de la famille Lisp, ce qui permet le traitement simultané de plusieurs instructions, et une plus grande flexibilité que le format des fichiers de Vixie. Sans compter que les changements apportés aux fichiers crontabs des utilisateurs lui sont directement signalés par le programme crontab, alors que cron doit vérifier /etc/crontab toutes les minutes bien que l’utilisation de ce fichier soit fortement déconseillée et qu’il peut être désactivé[3]. C’est un logiciel libre distribué par le projet GNU selon les termes de la licence GPL[3].

Notes et références[modifier | modifier le code]

  1. The Unix acronym list
  2. ou peut-être dérivé de chronographe (« Configuring cron jobs », sur Drupal.org (consulté le 2007-07-27) : « Cron, which stands for chronograph (…) »), ou encore de Command Run On (Cron)
  3. a et b (en) « GNU mcron », sur directory.fsf.org, FSF,‎ 28 avril 2014

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]