Provided by:
manpages-fr-extra_20101103_all 
NOM
crontab - Tables permettant de gerer le demon cron
DESCRIPTION
Un fichier crontab contient des instructions pour le demon cron(8). Ces
instructions ont la forme generale suivante : << lancer cette commande
a telle heure, tel jour >>. Chaque utilisateur dispose de sa propre
table crontab, et les commandes contenues dans une table seront
executees sous l'identifiant du proprietaire de la table. Les
pseudo-utilisateurs Uucp et News disposent generalement de leurs
propres crontabs, ce qui evite d'invoquer explicitement su(1) dans une
commande cron.
Les lignes blanches, les espaces et tabulations en debut de lignes sont
ignorees. Les lignes dont le premier caractere non blanc est un diese
(#) sont considerees comme des commentaires, et sont egalement
ignorees. Notez que les commentaires ne peuvent pas se trouver sur la
meme ligne qu'une commande cron, car ils seraient consideres comme des
parametres de la commande a invoquer. De meme, un commentaire ne peut
pas se trouver sur la meme ligne qu'une affectation de variable
d'environnement.
Une ligne active dans une crontab devra donc etre soit une affectation
de variable d'environnement, soit une commande cron. Une ligne
d'affectation d'environnement est de la forme :
nom = valeur
ou les espaces autour du signe egal (=) sont facultatives, et ou tous
les espaces ulterieures dans valeur feront partie integrante de la
valeur affectee a la variable nom. La chaine de valeur peut etre
inscrite entre guillemets simples ou doubles afin de proteger les
blancs initiaux et finaux. Les guillemets sont n'ecessaires pour definir
les variables vides. La chaine valeur ne supporte pas les substitutions
de variable d'environnement ou le remplacement de variables, ainsi une
ligne comme
PATH = $HOME/bin:$PATH
ne fonctionnera pas comme attendu. Tout comme ceci ne fonctionnera pas
A=1
B=2
C=$A $B
Il n'y aura pas de substitution pour les variables definies dans la
derniere valeur.
Une alternative a la definition du chemin des commandes est d'utiliser
le fait que de nombreux interpreteurs de commandes interpretent un
tilde (<< ~ >>) comme substitution de $HOME, ainsi si vous utilisez
bash pour vos taches, vous pouvez utiliser ceci :
SHELL=/bin/bash
PATH=~/bin:/usr/bin/:/bin
Plusieurs variables d'environnement sont automatiquement definies par
le demon cron(8). SHELL prend la valeur /bin/sh, LOGNAME et HOME sont
definies a partir de la ligne de /etc/passwd correspondant au
proprietaire de la crontab. PATH est definie a << /usr/bin:/bin >>.
HOME, SHELL et PATH peuvent etre reaffectees explicitement dans la
crontab contrairement a LOGNAME, qui est l'utilisateur ayant lance la
tache.
(Note : la variable LOGNAME est parfois nommee USER sur les systemes
BSD. Sur ces systemes, USER doit aussi etre definie.)
En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la
variable MAILTO s'il doit envoyer le resultat d'une commande executee
depuis << cette >> crontab. Si MAILTO est definie (et non vide), le
resultat est envoye a l'utilisateur indique. MAILTO peut aussi servir a
envoyer les courriers a plusieurs destinataires en separant les
destinataires par une virgule. Si MAILTO est definie mais vide
(MAILTO=""), aucun courriel ne sera envoye. Sinon, le courriel sera
envoye au proprietaire de la crontab.
Sur les systemes Debian GNU/Linux, cron gere le module pam_env et
charge les variables d'environnement des fichiers /etc/environment et
/etc/security/pam_env.conf. Les renseignements a propos des locales
sont aussi lus dans /etc/default/locale. Toutefois les reglages de PAM
n'affectent pas les reglages decrits ci-dessus ni la configuration dans
le fichier crontab. Veuillez noter en particulier que si vous voulez un
autre PATH que << /usr/bin:/bin >>, vous devrez le mentionner dans le
fichier crontab.
Par defaut, cron envoie le courrier en utilisant l'en-tete
"Content-type" de "text/plain" avec comme valeur du parametre
"charset=" l'encodage utilise par crond(8) a son lancement, i.e. soit
la locale par defaut du systeme si aucune variable d'environnement LC_*
n'est attribuee, soit la locale specifiee par ces variables LC_* (voir
locale(7)). Vous pouvez utiliser un autre codage de caracteres pour les
messages envoyes par cron en positionnant les variables CONTENT_TYPE et
CONTENT_TRANSFER_ENCODING dans vos crontabs aux valeurs souhaitees des
en-tetes de message correspondants.
Le format d'une commande cron est tres proche du standard V7, avec
quelques options permettant de garder une compatibilite ascendante.
Chaque ligne dispose de 5 champs de date et d'heure, suivis d'une
commande et enfin d'un retour a la ligne (<< \n >>). Le systeme crontab
(/etc/crontab) utilise le meme format, si ce n'est que le champ
utilisateur est indique apres les champs de date et d'heure mais avant
la commande. Les champs peuvent etre separes par des espaces ou des
tabulations.
Les commandes sont executees par cron(8) lorsque les champs minute,
heure et mois de l'annee correspondent a la date actuelle, et lorsqu'au
moins l'un des deux champs jour (jour du mois ou jour de la semaine)
correspond au jour actuel (voir << Note >> ci-dessous). cron(8) examine
les entrees cron chaque minute. Les champs d'heure et de date sont :
champ valeurs autorisees
----- --------------
minute 0-59
heure 0-23
jour du mois 1-31
mois 1-12 (ou noms, voir ci-dessous)
jour de semaine 0-7 (0 et 7 pour dimanche, ou utiliser les noms)
Un champ peut contenir un asterisque << * >>, qui correspond a
l'intervalle << premier-dernier >>.
Les intervalles de nombres sont permis. Ils se presentent sous forme de
deux nombres separes par un trait d'union. Les bornes sont incluses.
Par exemple, l'intervalle horaire 8-11 correspond a une execution aux
heures 8, 9, 10, et 11.
Les listes sont permises. Une liste est un ensemble de nombres ou
d'intervalles separes par des virgules. Exemple << 1,2,5,9 >>,
<< 0-4,8-12 >>.
Des valeurs de << pas >> peuvent etre associees aux intervalles. A la
suite d'un intervalle, un << /<nombre> >> precise le pas a adopter pour
parcourir l'intervalle. Par exemple << 0-23/2 >> dans le champ horaire
demande une execution 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
egalement autorises a la suite d'un asterisque. Ainsi, pour dire
<< toutes les deux heures >>, on peut utiliser << */2 >>.
On peut employer le nom des mois ou des jours de la semaine (en
anglais), en utilisant les trois premieres lettres (pas de difference
majuscule/minuscule). Les intervalles ou les listes de noms ne sont pas
acceptes.
Le sixieme champ (le reste de la ligne) indique la commande a executer.
Tout le reste de la ligne, jusqu'au retour chariot ou au caractere %,
sera execute par /bin/sh, ou par le shell mentionne dans la variable
SHELL du fichier cron. Les signes pourcent (%) dans les commandes
seront transformes en retour-chariot, sauf s'ils sont precede par un
backslash \. Toutes les donnees se trouvant a la suite du premier %
seront transmises a la commande sur son entree standard. Il n'est pas
possible d'ecrire une commande sur plusieurs lignes, comme on le ferait
dans un shell avec le \ final.
Note : le jour d'execution d'une commande peut etre specifie par deux
champs (jour du mois, et jour de la semaine). Si les deux champs sont
remplis (c.-a-d. differents de << * >>), la commande sera lancee quand
l'un des champs au moins correspond a la date en cours. Par exemple
<< 30 4 1,15 * 5 >> executera une commande a 4 h 30 du matin les 1er et
15 de chaque mois, ainsi que chaque vendredi. Il est toutefois possible
d'obtenir le resultat voulu en ajoutant un test a la commande (voir le
dernier exemple dans la section EXEMPLE DE FICHIER CRONTAB plus bas).
A la place des cinq premiers champs peut apparaitre l'une des huit
chaines speciales :
chaine signification
------ -------
@reboot Executer une fois au demarrage.
@yearly Executer une fois par an, << 0 0 1 1 * >>.
@annually (idem que @yearly)
@monthly Executer une fois par mois, << 0 0 1 * * >>.
@weekly Executer une fois par semaine, << 0 0 * * 0 >>.
@daily Executer une fois par jour, << 0 0 * * * >>.
@midnight (idem que @daily)
@hourly Executer une fois par heure, << 0 * * * * >>.
EXEMPLE DE FICHIER CRONTAB
# Utiliser /bin/bash pour lancer les commandes, plutot que le shell par
# defaut /bin/sh
SHELL=/bin/bash
# Envoyer les resultats a Paul, sans tenir compte du proprietaire
MAILTO=paul
#
# Executer chaque jour, 5 minutes apres minuit
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# Executer le premier de chaque mois a 14 h 15 - Resultat envoye a Paul
15 14 1 * * $HOME/bin/monthly
# Enerver Joe du lundi au vendredi a 22 h
0 22 * * 1-5 mail -s "Il est 22 h" joe%Joe,%%Ou sont tes enfants ?%
23 0-23/2 * * * echo "Tous les jours, 23 mn apres 0 h, 2 h, 4 h..."
5 4 * * sun echo "Tous les dimanches a 4 h 05"
# Tous les deuxiemes samedis du mois
0 4 8-15 * * test $(date +u) -eq 6 && echo "deuxieme samedi"
EXEMPLE DE FICHIER SYST`EME CRON
Le champ utilisateur est present, il est utilise comme dans le fichier
/etc/crontab.
# /etc/crontab: crontab du systeme
# A la difference des autres crontabs, vous n'avez pas besoin d'executer
# la commande crontab pour installer la nouvelle version quand vous
# modifiez ce fichier. Ce fichier possede aussi un champ utilisateur que
# les autres crontabs n'ont pas.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow utilisateur commande
42 6 * * * root run-parts --report /etc/cron.daily
47 6 * * 7 root run-parts --report /etc/cron.weekly
52 6 1 * * root run-parts --report /etc/cron.monthly
#
# Supprime l'invocation d'anacron, puisque cela est maintenant gere par
# un fichier dans /etc/cron.d
VOIR AUSSI
cron(8), crontab(1)
EXTENSIONS
Dans la designation du jour de la semaine, le 0 et le 7 correspondent
tous deux au dimanche. BSD et AT&T ne sont pas entierement d'accord
la-dessus.
On autorise les intervalles et les listes dans le meme champ.
<< 1-3,7-9 >> sera rejete par le cron AT&T ou BSD, ils n'acceptent que
<< 1-3 >> ou << 7,8,9 >>.
Les intervalles peuvent inclure des << pas >>, ainsi << 1-9/2 >>
equivaut a << 1,3,5,7,9 >>.
Le nom des mois ou des jours de la semaine peut etre utilise.
Les variables d'environnement peuvent etre definies dans la crontab.
Avec BSD ou AT&T, l'environnement transmis aux processus fils est
globalement celui de /etc/rc.
La sortie des commandes est soit envoyee au proprietaire de la crontab
(pas sous BSD), soit dirigee vers une autre personne (pas sous SysV),
soit la redirection est desactivee et aucun courriel ne sera envoye
(pas sous SysV non plus).
Toutes les commandes << @ >> qui peuvent apparaitre dans l'un des cinq
premiers champs sont des extensions.
LIMITATIONS
Le demon cron s'execute dans un certain fuseau horaire. Il ne prend pas
en charge la definition d'un fuseau horaire par utilisateur. Toutes les
taches, taches systeme ou taches d'utilisateurs, s'executeront en
fonction du fuseau horaire configure. Meme si un utilisateur definit la
variable d'environnement TZ dans sa crontab, ceci n'affectera que les
commandes executee dans la tache, pas l'execution des taches crontab
elles memes.
DIAGNOSTICS
Chaque entree d'une crontab doit etre terminee par un retour a la
ligne. Si la derniere entree ne se termine pas par un retour a la
ligne, cron la considerera (au moins partiellement) cassee. Un
avertissement sera ecrit dans le journal systeme (<< syslog >>).
AUTEUR
Paul Vixie <paul@vix.com>
TRADUCTION
Cette page de manuel a ete traduite et mise a jour par Christophe
Blaess entre 1997 et 2003. La version presente dans Debian est
dorenavant maintenue par Steve Petruzzello <dlist AT bluewin DOT ch> et
les membres de la liste <debian-l10n-french AT lists DOT debian DOT
org>. Veuillez signaler toute erreur de traduction par un rapport de
bogue sur le paquet manpages-fr-extra.