CRONTAB(5) Manuel de l'administrateur Linux CRONTAB(5)
NOM
crontab(1,5) - Table permettant de grer le dmon Cron.
DESCRIPTION
Un fichier crontab(1,5) contient des instructions pour le dmon cron(8).
Ces instructions ont la forme gnrale suivante : ``lancer cette com-
mande telle heure, tel jour''. Chaque utilisateur dispose de sa
propre table crontab(1,5), et les commandes contenues dans une table seront
excutes sous l'identifiant du propritaire de la table. Les
pseudo-utilisateurs Uucp et News disposent gnralement de leurs pro-
pres crontabs, ce qui vite d'invoquer explicitement su(1) dans une
commande cron.
Les lignes blanches, et les espaces et tabulations en tte de lignes
sont ignores. Les lignes dont le premier caractre non-blanc est un
dise (#) sont considres comme des commentaires, et sont gale-
ment ignores. Notez que les commentaires ne peuvent pas se trouver
sur la mme ligne qu'une commande cron, car ils seraient considrs
comme des arguments en ligne pour la commande invoquer. De mme,
un commentaire ne peut pas se trouver sur la mme ligne qu'une affec-
tation de variable d'environnement.
Une ligne active dans une crontab(1,5) 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 ultrieurs feront partie intgrante de la valeur
affecte la variable ayant le nomindiqu. La chane de valeur
peut tre inscrite entre guillemets ou entre quotes afin de protger
les blancs initiaux et finaux.
Plusieurs variables d'environnement sont automatiquement configures
par le dmon cron(8). SHELL est rempli avec /bin/sh, LOGNAME et HOME
sont configures partir de la ligne de /etc/passwd(1,5) correspondant au
propritaire de la crontab. HOME et SHELL peuvent tre surchargs
par des affectations explicites dans la crontab(1,5), LOGNAME non.
(Note : la variable LOGNAME est parfois nomme USER sur les systmes
BSD, elle sera alors configure).
En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la vari-
able MAILTO s'il doit envoyer le rsultat d'une commande excute
dans cette crontab. Si MAILTO est dfinie (et non vide), le rsultat
est envoy l'utilisateur indiqu. Si MAILTO est dfini et vide
(MAILTO=""), aucun courrier ne sera envoy. Sinon, le courrier sera
mis vers le propritaire de la crontab.
Cette option est utile si vous utilisez /bin/mail(1,8) comme agent la
place de /usr/lib/sendmail(1,8) lorsque vous installez cron. /bin/mail(1,8) ne
gre pas d'alias, et UUCP ne lit gnralement pas son courrier.
Le format d'une commande cron est trs proche du standard V7, avec
quelques options gardant une compatibilit ascendante. Chaque ligne
dispose de 5 champs de date et heure, suivi d'un nom d'utilisateur s'il
s'agit du fichier crontab(1,5) central du systme, suivi d'une commande.
Les commandes sont excutes par cron(8) lorsque les champs minute,
heure, et mois de l'anne correspondent la date et quand au moins
l'un des deux autres champs (jour du mois, jour de la semaine) corre-
spond aussi (voir le paragraphe ``Note'' plus bas). Notez que les
moments non-existants, comme les heures manquantes au moment des
changements d'heure, ne seront jamais mises en correspondante, et leurs
jobs ne seront pas excuts. De mme les moments se reproduisant
deux fois (encore pendant les changements d'heure) dclencheront le
mme job deux fois.
cron(8) examine ses donnes une fois par minute. Les champs de date
et heure sont :
champs valeurs autorises
----- --------------
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 sont Dimanche, ou les noms)
Un champ peut contenir un astrisque (*), qui correspond l'inter-
valle ``premier-dernier''
Les intervalles de nombres sont permis. Il se prsentent sous forme de
deux nombres spars par un tiret. Les bornes sont inclues. Par exem-
ple, l'intervalle horaire 8-11 correspond une excution aux heures
8, 9, 10, et 11.
Les listes sont permises. Une liste est une srie de nombres ou
d'intervalles spars par des virgules. Exemple ``1,2,5,9'',
``0-4,8-12''.
Des valeurs de "pas" peuvent tre associes aux intervalles. A la
suite d'un intervalle, un ``/nombre'' prcise le pas adopter pour
parcourir l'intervalle. Par exemple ``0-23/2'' dans le champ horaire
demande une excution 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 autoriss la suite d'un astrisque, ainsi, pour dire
``toutes les deux heures'', on peut utiliser ``*/2''.
On peut employer les noms des mois ou des jours de la semaine, en util-
isant les trois premires lettres (pas de diffrence majuscule/minus-
cule). Les intervalles, ou les listes de noms ne sont pas accept(2,8)s.
Le sixime champ (le reste de la ligne) indique la commande
excuter. Tout le reste de la ligne, jusqu'au retour chariot ou au
caractre %, sera excut par /bin/sh, ou par le shell mentionn
dans la variable SHELL du fichier cron. Les signes pourcentages (%)
dans les commandes seront transforms en retour-chariot, sauf s'ils
sont prcds par un backslash (\). Toutes les donnes se trouvant
la suite du premier % seront transmises la commande sur son
entre standard.
Note: Le jour d'excution d'une commande peut tre spcifi part
deux champs (jour du mois, et jour de la semaine). Si les deux champs
sont remplis (c.- -d. pas *), la commande sera lance quand l'un des
champs correspond la date en cours. Par exemple
``30 4 1,15 * 5'' excutera 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 rsultats Paul, sans tenir compte du propritaire
MAILTO=paul
#
# Chaque jour, 5 minutes aprs Minuit
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# Le premier de chaque mois 14h15 - Rsultat envoy Paul
15 14 1 * * $HOME/bin/monthly
# Les jours de la semaine 22h, nerver Joe
0 22 * * 1-5 mail(1,8) -s "Il est 22h" joe%Joe,%%O sont tes enfants ?%
23 0-23/2 * * * echo(1,3x,1 builtins) "Tous les jours, 23mn aprs 0h, 2h, 4h..."
5 4 * * sun echo(1,3x,1 builtins) "Tous les dimanches 4h 05"
VOIR AUSSI
cron(8), crontab(1,5)(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 mme champs.
"1-3,7-9" sera rejet 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 utiliss.
Les variables d'environnement peuvent tre configures 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 envoye au propritaire de la
crontab(1,5) (pas sous BSD), mais peut tre dirige vers une autre per-
sonne (pas sous SysV), ou l'on peut empcher toute redirection du
courrier (pas sous SysV non plus).
AUTEUR
Paul Vixie <paul@vix.com>
TRADUCTION
Christophe Blaess, 1999-2003.
Vixie-cron 25 juillet 2003 CRONTAB(5)