Fichier de description de tâches

Le fichier de description des tâches va contenir les instructions nécessaires au processus de supervision (processus «  cron(8) »). Celui décrira les opérations de la façon suivante «  exécute cette commande à cette heure là ce jour-ci ».

Dans ce fichier,

Remarque 5..5 :


Il n'est pas possible de mettre des commentaires au milieu d'une ligne. Le signe de commentaire doit donc être le premier caractère de la ligne.

Chaque ligne de description, hormis les lignes de commentaires, peuvent , soit définir des variables d'environnement pour l'ensemble des tâches à effectuer, soit des commandes à exécuter aux instants spécifiés. La définition d'une variable d'environnement dans le fichier obéit à la syntaxe suivante :

nom = valeur
où « nom » représente le nom de la variable d'environnement et «  valeur » représente la valeur qui lui est affectée. Les espaces de part et d'autre du signe égual « = » sont optionnels. Si la valeur à affecter à la variable est une chaine de caractères, il est préférable de la mettre entre simple quotes (« ' »ï¿12u double quotes (« " »).

Pour toutes les commandes qui seront exécutées :

Certaines variables d'environnement sont automatiquement positionnées par le gestionnaire de tâches cron(8) :
Variable Description
SHELL représente l'interpréteur de commande par défaut. Cette variable est initialisée à « /bin/sh », donc le Bourne Shell.
LOGNAME représente le nom de connexion de l'utilisateur. Par défaut, elle correspond à votre entrée dans la base des utilisateurs.
USER a exactement les mêmes fonctionnalités que la variable « LOGNAME ». Cependant, certains utilitaires issus des systèmes BSD5.2 utilisent « USER » plutôt que « LOGNAME ».
HOME représente votre répertoire de connexion. Par défaut, il correspond à celui défini dans les caractéristiques de l'utilisateur.
MAILTO En plus des variables LOGNAME, HOME et SHELL, le processus « cron(8) » examine le contenu de la variable d'environnement « MAILTO » afin de savoir s'il est nécessaire d'envoyer un message donnant le résultat de l'exécution des commandes. Si cette variable est définie et non vide, elle doit contenir l'adresse courrier de la personne à qui envoyer les messages. Si elle est définie mais vide5.3, aucun message ne sera envoyé.
  Au cas où aucune option se serait précisé grâce à la variable « MAILTO », le résultat produit sur la sortie standard est envoyé dans la boite aux lettres de l'utilisateur possédant cette liste de tâches à exécuter.

Remarque 5..6 :


Cette fonctionnanlité offerte grâce à la variable « MAILTO » peut être très utile si vous décidez d'utiliser un autre serveur de messagerie que « /usr/lib/sendmail ». Dans ce cas, « /bin/mail » sera employé pour assurer l'acheminement des messages. « /bin/mail » n'utilisera pas la notion d'aliases de « /usr/lib/sendmail ».

Les lignes de description de tâches se composent de plusieurs champs séparés par des espaces ou tabulations. Chaque ligne possède :

Le service « cron(8) »5.5 examine toutes les minutes, les tables de description. Lorsque la date précisée dans une entrée d'une table de description de tâches, le service « cron(8) » crée un sous processus sous l'identité de la personne et lance la commande à l'intérieur de ce contexte. La spécification de la date et de l'heure se compose des cinq informations suivantes :

Champ Valeurs autorisées
minute 0-59
heure 0-23
jour du mois 1-31
mois 1-12
jour de la semaine 0-75.6

Si l'un de ces champs contient le caractère « * », celui-ci ne doit pas être pris en compte, ou bien l'une des bornes inférieure ou supérieure doit être considérée dans la détermination de la date. Par exemple :

0 1 * * * indique : « tous les jours à 01:00 »
0 0 * * 1 indique : « tous les lundis à minuit »
* * * 2 3 indique : « tous les mardis du mois de février à minuit »

Pour chaque champ, il est possible de donner :

Exemple 5..7 :


1,5 correspond à la séquence : « 1, 5 »
8-10 correspond à la séquence : « 8, 9, 10 »
0-5,7,9 correspond à la séquence : « 0, 1, 2, 3, 4, 5, 7, 9 »
0-4,8-12 correspond à la séquence : « 0, 1, 2, 3, 4, 8, 9, 10, 11, 12 »

Remarque 5..7 :


Aucun espace ne doit être introduit dans les cinq champs associés à la date et à l'heure de lancement d'une commande.

Remarque 5..8 :


Certaines extensions du service « cron(8) » permettent de modifier l'incrément des plages de nombres. Une plage de nombres suivie de « /<number>» indique le pas entre les valeurs à prendre à l'intérieur de l'intervalle. Par exemple, « 0-23/2 », dans le champ «heure » spécifie toutes les deux heures d'une journée (c'est-à-dire « 0,2,4,6,8,10,12,14,16,18,20,22 »). Cette option est aussi autorisée à la suite du caractère « * ». Par exemple, « */2 » au niveau du champ « heure », sera identique à l'exmple précédent, c'est-à-dire qu'il signifiera « toutes les deux heures ».

Le dernier champ, c'est-à-dire le reste de la ligne, spécifie la commande à exécuter. Par conséquent, la spécification doit être inscrite sur une seule ligne. La commande sera exécutée dans le contexte du Bourne Shell (/bin/sh) ou celui précisé grâce à la variable d'environnement « SHELL ».

Remarque 5..9 :


Le jour de l'exécution d'une commande peut être précisé dans deux champs ï¿12
Si ces deux champs sont renseignés, c'est-à-dire qu'ils ne contiennent pas le caractère « * », la commande sera exécutée dès que la date courrante correspondra à l'une des deux possibilités. Par exemple, « 30 4 1,15 * 5 » indiquera que la commande devra être exécutée à 04:30 le $1^{ier}$ et le quinze de chaque mois, mais aussi tous les vendredi.

baudry@esme.fr