CRONTAB(5) Manuel de l'administrateur Linux CRONTAB(5)
NOM
crontab - Table permettant de gérer le démon Cron.
DESCRIPTION
Un fichier crontab contient des instructions pour le démon
cron(8). Ces instructions ont la forme générale suivante
: ``lancer cette commande à telle heure, tel jour''.
Chaque utilisateur dispose de sa propre table crontab, et
les commandes contenues dans une table seront éxécutées
sous l'identifiant du propriétaire de la table.
Les pseudo-utilisateurs Uucp et News disposent générale
ment de leurs propres crontabs, ce qui évite d'invoquer
explicitement su(1) dans une commande cron.
Les lignes blanches, et les espaces et tabulations en tête
de lignes sont ignoreés. Les lignes dont le premier car
actère non-blanc est un dièse (#) sont considérées comme
des commentaires, et sont également ignorées. Notez que
les commentaires ne peuvent pas se trouver sur la même
ligne qu'une commande cron, car ils seraient considérés
comme des arguments en ligne pour la commande à invoquer.
De même, un commentaire ne peut pas se trouver sur la même
ligne qu'une affectation de variable d'environnement.
Une ligne active dans une crontab devra donc être soit une
affectation de variable d'environnement, soit une commande
cron. Une ligne d'affectation d'environnement est de la
forme
nom = valeur
où les espaces autour du signe égal (=) sont facultatifs,
et où tous les espaces ultérieurs feront partie intégrante
de la valeur affectée à la variable ayant le nomindiqué.
La chaîne de valeur peut être inscrite entre guillemets ou
entre quotes afin de protéger les blancs initiaux et fin
aux.
Plusieurs variables d'environnement sont automatiquement
configurées par le démon cron(8). SHELL est rempli avec
/bin/sh, LOGNAME et HOME sont configurées à partir de la
ligne de /etc/passwd correspondant au propriétaire de la
crontab. HOME et SHELL peuvent être surchargés par des
affectations explicites dans la crontab, LOGNAME non.
(Note : la variable LOGNAME est parfois nommée USER sur
les systèmes BSD, elle sera alors configurée).
En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en
compte la variable MAILTO s'il doit envoyer le résultat
d'une commande exécutée dans cette crontab. Si MAILTO est
définie (et non vide), le résultat est envoyé à
Linux 2 Mai 1999 1
CRONTAB(5) Manuel de l'administrateur Linux CRONTAB(5)
l'utilisateur indiqué. Si MAILTO est défini et vide
(MAILTO=""), aucun courrier ne sera envoyé. Sinon, le
courrier sera émis vers le propriétaire de la crontab.
Cette option est utile si vous utilisez /bin/mail comme
agent à la place de /usr/lib/sendmail lorsque vous
installez cron. /bin/mail ne gère pas d'alias, et UUCP ne
lit généralement pas son courrier.
Le format d'une commande cron est très proche du standard
V7, avec quelques options gardant une compatibilité ascen
dante. Chaque ligne dispose de 5 champs de date et heure,
suivi d'un nom d'utilisateur s'il s'agit du fichier
crontab central du système, suivi d'une commande. Les
commandes sont éxécutée par cron(8) lorsque les champs
minute, heure, et mois de l'année correspondent à la date
et quand au moins l'un des deux autres champs (jour du
mois, jour de la semaine) correspond aussi (voir le para
graphe ``Note'' plus bas). cron(8) examine ses données
une fois par minute. Les champs de date et heure sont :
champs valeurs autorisées
----- --------------
minute 0-59
heure 0-23
jour du mois 0-31
mois 0-12 (ou noms, voir plus bas)
jour de semaine0-7 (0 et 7 snt Dimanche, ou les
noms)
Un champ peut contenir un astérisque (*), qui correspond à
l'intervalle ``premier-dernier''
Les intervalles de nombres sont permis. Il se présentent
sous forme de deux nombres séparés par un tiret. Les
bornes sont inclues. Par exemple, l'intervalle horaire
8-11 correspond à une éxécution aux heures 8, 9, 10, et
11.
Les listes sont permises. Une liste est une série de nom
bres ou d'intervalles séparés par des virgules. Exemple
``1,2,5,9'', ``0-4,8-12''.
Des valeurs de "pas" peuvent être associées aux inter
valles. A la suite d'un intervalle, un ``/nombre'' précise
le pas à adopter pour parcourir l'intervalle. Par exemple
``0-23/2'' dans le champs horaire demande une exécution
toutes les heures paires. Une alternative avec le standard
V7 serait ``0,2,4,6,8,10,12,14,16,18,20,22''). Les pas
sont également autorisés à la suite d'un astérisque,
ainsi, pour dire ``toutes les deux heures'', on peut
utiliser ``*/2''.
On peut employer les noms des mois ou des jours de la
Linux 2 Mai 1999 2
CRONTAB(5) Manuel de l'administrateur Linux CRONTAB(5)
semaine, en utilisant les trois premières lettres (pas de
différence majuscule/minuscule). Les intervalles, ou les
listes de noms ne sont pas acceptés.
Le sixième champ (le reste de la ligne) indique la com
mande à exécuter. Tout le reste de la ligne, jusqu'au
retour chariot ou au caractère %, sera exécuté par
/bin/sh, ou par le shell mentionné dans la variable SHELL
du fichier cron. Les signes pourcentages (%) dans les
commandes seront transformés en retour-chariot, sauf s'ils
sont précédés par un backslash (\). Toutes les données se
trouvant à la suite du premier % seront transmises à la
commande sur son entrée standard.
Note: Le jour d'éxécution d'une commande peut être
spécifié part deux champs (jour du mois, et jour de la
semaine). Si les deux champs sont remplis (i.e, pas *), la
commande sera lancée quand l'un des champs correspond à la
date en cours. Par exemple
``30 4 1,15 * 5'' exécutera une commande à 4:30 du matin
les 1er et 15 de chaque mois, ET chaque Vendredi.
EXEMPLE DE FICHIER CRONTAB
# utiliser /bin/sh pour lancer les commandes, quoiqu'en dise /etc/passwd.
SHELL=/bin/sh
# Envoyer les résultats à Paul, sans tenir compte du propriétaire
MAILTO=paul
#
# Chaque jour, 5 minutes après Minuit
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# Le premier de chaque mois à 14h15 - Résultat envoyé à Paul
15 14 1 * * $HOME/bin/monthly
# Les jours de la semaine à 22h, énerver Joe
0 22 * * 1-5 mail -s "Il est 22h" joe%Joe,%%Où sont tes enfants ?%
23 0-23/2 * * * echo "Tous les jours, à 23mn apres 0h, 2h, 4h..."
5 4 * * sun echo "Tous les dimanches à 4h 05"
VOIR AUSSI
cron(8), crontab(1)
EXTENSIONS
Dans l'utilisation du jour de la semaine, le 0 et le 7
correspondent tous deux au Dimanche. BSD et ATT ne sont
pas tout à fait d'accord là-dessus.
On autorise les intervalles et les listes dans le même
champs. "1-3,7-9" sera rejetté par le cron ATT ou BSD,
ils n'acceptent que "1-3" ou "7,8,9".
Les intervalles peuvent inclure des "pas", ainsi "1-9/2"
équivaut à "1,3,5,7,9".
Les noms des mois ou des jours de la semaine peuvent être
utilisés.
Linux 2 Mai 1999 3
CRONTAB(5) Manuel de l'administrateur Linux CRONTAB(5)
Les variables d'environnement peuvent être configurées
dans la crontab. Avec BSD ou ATT, les environnements
transmis aux processus fils sont globalement ceux de
/etc/rc.
La sortie des commandes est normalement envoyée au pro
priétaire de la crontab (pas sous BSD), mais peut être
dirigée vers une autre personne (pas sous SysV), ou l'on
peut empêcher toute redirection du courrier (pas sous SysV
non plus).
AUTEUR
Paul Vixie <paul@vix.com>
TRADUCTION
Christophe Blaess, 1999.
Linux 2 Mai 1999 4