.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\"
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng .
.TH "FCRONTAB" "5" "05 December 2021" "12/05/2021" ""
.SH NAME
fcrontab \- Tables de configuration de fcron
.SH "DESCRIPTION"
.PP
Un fichier \fBfcrontab\fR est un fichier qui contient toutes les tables
utilisées par le démon \fBfcron\fR(8). Cela permet à un utilisateur de dire
au démon\~: «\~Exécute cette tâche à tel moment\~». Chaque
utilisateur a sa propre table \fBfcrontab\fR, et les commandes contenues
dans une table seront exécutées sous l'identifiant du propriétaire de la
table. Seul le super-utilisateur peut lancer une tâche avec les droits
d'un autre utilisateur en utilisant l'option runas (voir plus loin).
.PP
Les lignes blanches, les lignes débutant par le symbole dièse
«\~#\~» (qui sont considérées comme étant des commentaires),
les espaces ou les tabulations placées en début de ligne sont ignorées.
Chaque ligne d'un fichier \fBfcrontab\fR peut être soit\~:
.TP 0.2i
\(bu
une configuration d'environnement,
.TP 0.2i
\(bu
une configuration d'option,
.TP 0.2i
\(bu
des entrées basées sur la durée totale de fonctionnement du
système depuis la dernière exécution de la tâche,
.TP 0.2i
\(bu
des entrées basées sur un temps absolu (comme les entrées
normales de crontab), ou
.TP 0.2i
\(bu
des entrées lancées périodiquement.
.PP
Toute ligne logique (une entrée ou une affectation) peut être scindée
en plusieurs lignes effectives (des lignes finissant par un caractère
fin de ligne) en plaçant une barre oblique inverse «\~\\\~» avant
le caractère fin de ligne «\~\\n\~».
.SS "LA CONFIGURATION DE L'ENVIRONNEMENT"
.PP
La configuration de l'environnement est de la forme
.sp
.RS
.PP
nom = valeur
.RE
.PP
où les espaces autour du signe d'égalité «\~=\~» sont
ignorées et optionnelles. Les espaces en fin de ligne sont également
ignorées, mais vous pouvez placer la valeur entre guillemets (simple
ou double, mais appareillés) pour préserver les caractères blancs dans
la valeur.
.PP
Lorsque \fBfcron\fR exécute une commande, il positionne toujours les
variables d'environnement
\fBUSER\fR, \fBHOME\fR, et \fBSHELL\fR
comme elles sont définies dans \fI/etc/passwd\fR pour
le propriétaire de la table \fBfcrontab\fR dont la commande est issue.
Les variables d'environnement \fBHOME\fR et
\fBSHELL\fR peuvent être écrasées par la configuration
contenue dans le fichier \fBfcrontab\fR, mais \fBUSER\fR ne
peut pas l'être. Toute autre affectation d'environnement définie dans
le \fBfcrontab\fR de l'utilisateur est effectuée et la commande exécutée.
.PP
De plus, la variable spéciale MAILTO vous permet
d'indiquer à \fBfcron\fR à qui envoyer par courriel la sortie de la
commande. Veuillez noter que MAILTO est en fait
équivalente à la déclaration globale de l'option mailto (voir
plus loin). Elle n'est utilisée que pour assurer une
rétrocompatibilité, aussi, vous devriez plutôt utiliser directement
l'option mailto\&.
.SS "ENTRÉES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DéMARRAGE DU SYSTÈME"
.PP
Les entrées des commandes qui doivent être exécutées une fois
toutes les m minutes de l'exécution de \fBfcron\fR (qui sont normalement
les mêmes m minutes de l'exécution du système) sont de la forme
.nf
@options fréquence commande
.fi
.PP
où fréquence est une valeur de temps de la forme
valeur*multiplicateur+valeur*multiplicateur+...+valeur-en-minutes
comme «\\\~12h02\\\~» ou «\\\~3w2d5h1\\\~». La première
signifie «\\\~12 heures et 2 minutes d'exécution de fcron\\\~»
tant dis que la seconde signifie «\\\~3 semaines, 2 jours, 5 heures
et 1 minute d'exécution de fcron\\\~». Les
multiplicateurs valides sont\~:
"MULTIPLICATEURS DE TEMPS VALIDES"
signification\~: multiplicateurs\~: mois (4 semaines)\~: m semaines (7 jours)\~: w jours (24 heures)\~: d heures (60 minutes)\~: h secondes\~: s
.PP
À la place de \fIoptions\fR, l'utilisateur
peut mettre une valeur de temps qui sera interprétée comme
@first(\fI\fR)\&. Si l'option
first n'est pas positionnée, la valeur de
«\~fréquence\~» est utilisée.
.PP
Ce type d'entrée ne garantie pas une date et heure d'exécution (vu
que la tâche est retardée à chaque démarrage du système par le temps
écoulé depuis l'arrêt du système), mais peut être pratique pour des
tâches dépendant du nombre de choses faites par les utilisateurs (par
exemple, il vaudrait mieux vérifier le système de fichiers après un
certain nombre d'utilisation par les utilisateurs plutôt que tous les
x jours, vu que le système peut être lancé de 1 jour à x jours pendant
cet intervalle de x jours).
.PP
Le temps restant avant la prochaine exécution est sauvegardé
toutes les 1800 secondes (afin de limiter les dommages provoqués
par un plantage) et lorsque \fBfcron\fR quitte après avoir reçu un signal
SIGTERM, c.-à-d. lorsque l'on arrête le système.
Ainsi, ce type d'entrée est particulièrement utile pour des systèmes
qui ne tournent pas de manière régulière. La syntaxe étant très simple,
il est également pratique pour des tâches qui n'ont pas besoin d'être
exécutées à une date et une heure spécifique.
.PP
\fBVoir aussi\fR\~: les options first, mail, nolog,
serial, lavg, nice, runas (voir plus loin).
.PP
.SS "QUELQUES EXEMPLES DE LIGNES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DÉMARRAGE DU SYSTÈME"
.nf
# Récupérer vos courriels toutes les 30 minutes
@ 30 getmails -all
# Effectuer quelques tests de sécurité toutes les 48 heures de fonctionnement
# du système, envoyer un courriel au super-utilisateur même s'il n'a pas de sortie
@mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh
.fi
.SS "ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE"
.PP
Le deuxième type d'entrée d'un fichier \fBfcrontab\fR commence par un
caractère «\~&\~» optionnel qui peut être immédiatement suivi
par un nombre optionnel définissant la fréquence d'exécution (ceci est
équivalent à l'option runfreq) ou par une déclaration
d'options\~; il possède cinq champs de date et d'heure, ainsi
qu'une commande shell\~:
.nf
&options min hrs jour-du-mois mois jour-de-la-semaine commande
.fi
.PP
Veuillez noter que la commande shell peut être précédée par un nom
d'utilisateur, ce qui est équivalent à runas
(\fI\fR)\~: vu que cela n'existe
que pour une retrocompatibilité, vous devriez plutôt utiliser l'option
runas (voir plus loin). La fréquence est interprétée de la façon
suivante\~: «\~lancer cette commande après x correspondances des
champs date et heure\~». Les champs date et heure sont\~:
"CHAMPS DATE ET HEURE"
champ\~: valeurs permises\~: minute\~: 0-59 heure\~: 0-23 jour du mois\~: 1-31 mois\~: 1-12 (ou leurs noms, voir plus loin) jour de la semaine\~: 0-7 (0 et 7 signifient tous deux le dimanche, ou leurs noms)
.PP
Un champ est toujours renseigné soit par une astérique
«\~*\~», qui signifie un intervalle comme
«\~premier-dernier, soit un nombre seul, soit une
liste.
.PP
Les listes sont des nombres ou des intervalles séparés par des
virgules «\~,\~». Par exemple\~: «\~2,5,15,23\~».
.PP
Les intervalles de nombres sont de la forme
«\~\fI\fR-\fI\fR\~»,
où «\~\fIdébut\fR\~» et
«\~\fIfin\fR\~» sont inclus. Par exemple,
«\~3-5\~» signifie les valeurs 3, 4 et 5. Vous pouvez également
ajouter un «\~/\fInombre\fR\~» optionnel
à l'intervalle, où le \fInombre\fR signifie le
pas dans l'intervalle. Par exemple, «\~0-23/2\~» peut être
utilisé dans le champ heure pour spécifier l'exécution d'une commande
toutes les heures paires. Enfin, un ou plusieurs
«\~~\fInombre\fR\~» peuvent être ajoutés
afin de désactiver certaines valeurs dans l'intervalle. Par exemple,
«\~5-8~6~7\~» est équivalent à «\~5,8\~». La forme
finale d'un champ est\~:
.sp
.RS
.PP
a[-b[/c][~d][~e][...]][,f[-g[/h][~i][~j][...]]][,...]
.RE
.PP
où les lettres sont des nombres entiers.
.PP
Vous pouvez également utiliser unE astérisque «\~*\~» dans
un champ. Il agira comme «\~premier-dernier\~».
Par exemple, un «\~*\~» dans le champ minute signifie toutes
les minutes de la minute 0 à la minute 59.
.PP
Des intervalles peuvent être inclus dans une liste comme un simple
nombre. Par exemple\~: «\~2,5-10/2~6,15,20-25,30\~».
.PP
Les noms (Ndt\~: en anglais) peuvent être utilisés pour les
champs «\~mois\~» et «\~jour de la semaine\~». Pour ce
faire, utilisez les trois premières lettres du jour ou du mois
concerné (la casse n'a pas d'importance). Veuillez noter que les noms
sont utilisés exactement comme les nombres\~: vous pouvez les
utiliser dans une liste ou un intervalle.
.PP
Si un jour de mois et un jour de semaine sont donnés, la commande
sera exécutée seulement si \fBles deux\fR correspondent
au jour et à l'heure actuels à moins que l'option dayor n'ait été
positionnée. Par exemple, avec la ligne
.nf
5 10 31 * 7 echo ''
.fi
echo sera exécutée
seulement les jours qui sont un dimanche ET le 31ème jour du mois,
à 10:05.
.PP
\fBVoir aussi\fR\~: options dayor, bootrun, runfreq,
mail, nolog, serial, lavg, nice, runas
(voir plus loin).
.PP
.SS "QUELQUES EXEMPLES D'ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE"
.nf
# lancer macommande tous les jours à 12:05, 12:35, 13:05, 13:35,
# 14:05 *et* 14:35
& 05,35 12-14 * * * macommande -u moi -o fichier
# récupérer les courriels toutes les heures aux minutes 20, 21, 22, et 24.
20-24~23 * * * * getmail
# sauvegarder mon travail de la journée toutes les nuits à 03:45 avec une
# faible priorité, sauf le dimanche, envoyer la sortie par courriel à jim et
# lancer cette tâche au démarrage si la machine était éteinte à 03:45
&nice(10),mailto(jim),bootrun 45 03 * * *~0 "save --mon travail"
.fi
.SS "ENTRÉES LANCÉES PÉRIODIQUEMENT"
.PP
Le troisième type d'entrée \fBfcrontab\fR commence par le caractère
«\~%\~», suivi par un mot-clef pris parmi une des trois
différentes listes, puis par des options.
.SS "MOTS-CLEFS *LY"
.PP
Ces mots-clefs sont\~:
.PP
\fIhourly \fR, \fIdaily \fR, \fImonthly \fR, \fIweekly \fR
.PP
Ces mots-clefs indiquent à \fBfcron\fR de lancer la commande une fois
entre le début et la fin de l'intervalle de temps correspondant.
Un intervalle de temps est, par exemple, le temps compris entre lundi
16:20 et mercredi 01:43. Par exemple, le mot-clef
\fIweekly\fR indique à \fBfcron\fR de lancer une
commande une fois par semaine entre le lundi et le dimanche.
.PP
Avec ces deux sortes de mots-clefs, l'utilisateur doit renseigner
les champs heure nécessaires (comme ils sont définis dans
«\~Entrées basées sur une date
et une heure\~» (voir plus haut)) pour préciser quand la
commande devrait être lancée dans chaque intervalle de temps\~:
.PP
"CHAMPS DE TEMPS NÉCESSAIRES À CHAQUE MOT-CLEF"
Mots-clefs\~: doit être suivi par les champs\~: \fI hourly\fR,
\fImidhourly\fR\~: minutes.\fI daily\fR,
\fImiddaily\fR, \fInightly\fR,
\fIweekly\fR, \fImidweekly\fR\~: minutes et heures.\fI monthly\fR,
\fImidmonthly\fR : minutes, heures et jours.
.SS "MOTS-CLEFS MID*LY"
.PP
Ils sont similaires aux mots-clefs «\~*ly\~»\~:
.PP
\fImidhourly \fR, \fImiddaily \fR, \fInightly \fR, \fImidmonthly \fR, \fImidweekly \fR
.PP
Ils fonctionnent exactement comme les mots-clefs
«\~*ly\~», excepté que les intervalles de temps sont définis
du milieu au milieu de l'intervalle «\~*ly\~»
correspondant\~: \fImidweekly\fR lancera une
commande une fois entre le jeudi et le mercredi. Veuillez noter que
\fInightly\fR est équivalent à
\fImiddaily\fR\&.
.PP
Par exemple\~:
.PP
.nf
%nightly,mail(no) * 21-23,3-5 echo "une entrée nigthly"
.fi
.PP
lancera la commande une fois par nuit soit entre 21:00 et 23:59,
soit entre 3:00 et 5:59 (elle sera exécutée aussitôt que
possible\~; pour modifier ce comportement, utilisez l'option
random) et ne pas envoyer de courriel (étant donné que l'option
mail a été définie à «\~no\~»).
.PP
\fBVoir aussi\fR\~: options lavg, noticenotrun, strict,
mail, nolog, serial, nice, runas,
random (voir plus loin).
.SS "MOTS-CLEFS *S"
.PP
Ce sont\~:
.PP
\fImins \fR, \fIhours \fR, \fIdays \fR, \fImons \fR, \fIdow \fR
.PP
Ces mots-clefs agissent différemment, comme suit\~:
.PP
lancer cette commande unE fois durant CHAQUE intervalle de temps
spécifié, ignorant les champs suivants le mot-clef dans la définition
de l'intervalle de temps (un \fIhours\fR empêche le
champ \fImins\fR d'être considéré comme un intervalle de temps, mais il
sera utilisé pour déterminer quand la ligne devra être lancée au
cours de l'intervalle\~: voir la note plus loin)
(\fIdow\fR signifie «\~day of week\~»).
.PP
Un tel mot-clef est suivi par 5 champs de date et d'heure (les
mêmes champs utilisés pour une ligne
basée sur un temps absolu (voir plus haut). De plus, avec
cette sorte de mots-clefs, il doit y avoir sur les lignes des dates
et heures qui ne correspondent pas (c.-à-d. que ce qui suit n'est
pas permis\~:
.nf
%hours * 0-23 * * * echo "Ligne INCORRECTE !"
.fi
mais ceci l'est\~:
.nf
%hours * 0-22 * * * echo "Ok."
.fi
.sp
.RS
.B "Note:"
.PP
un nombre seul dans un champ est considéré comme un intervalle
de temps\~:
.nf
%mins 15 2-4 * * * echo
.fi
lancera
echo tous les jours à 2:15, 3:15 ET 4:15.
.PP
Mais tous les champs suivants les mots-clefs sont ignorés dans
la définition d'un intervalle de temps\~:
.nf
%hours 15 2-4 * * * echo
.fi
lancera
echo seulement UNE FOIS soit à 2:15, soit à 3:15 OU BIEN à 4:15.
.RE
.PP
\fBVoir aussi\fR\~: option random (voir plus loin).
.SS "OPTIONS"
.PP
Les options peuvent être positionnées soit pour chaque ligne située
après la déclaration, soit pour une ligne de manière individuelle. Dans
le premier cas, la configuration est faite sur une ligne complète après
un point d'exclamation «\~!\~», dans le second cas, elle est
faite après l'un des symboles suivants «\~&\~», «\~%\~»
ou «\~@\~», suivant le type de planification. Veuillez noter
qu'une déclaration d'option dans une planification écrase la
déclaration globale de la même option.
.PP
Les options sont séparées par des virgules «\~,\~» et leurs
arguments, s'il y en a, sont placés entre parenthèses «\~(\~»
et «\~)\~». Les espaces ne sont pas permises. Une déclaration
d'option est de la forme
.sp
.RS
.PP
\fIoption\fR[(\fIarg1\fR[,\fIarg2\fR][...])][,\fIoption\fR[(\fIarg1\fR[...])]][...]
.RE
.PP
où \fIoption\fR est soit le nom complet de
l'option, soit son abréviation. Les options sont (avec leur valeur
par défaut entre parenthèses)\~:
"OPTIONS VALIDES DANS UN FICHIER FCRONTAB"
.TP
\fBbootrun\fR
.TP
\fBb\fR
\fBbooléen\fR(false)
Lancer une ligne «\~&\~» au démarrage de \fBfcron\fR si
celle-ci avait dû être lancée pendant l'arrêt du système.
.TP
\fBdayand\fR
\fBbooléen\fR(true)
Effectuer un ET logique entre le jour de la semaine et le
jour du mois.
\fBVoir aussi\fR\~: option dayor\&.
.TP
\fBdayor\fR
\fBbooléen\fR(false)
Effectuer un OU logique entre le jour de la semaine et le
jour du mois.
\fBVoir aussi\fR\~: option dayand\&.
.TP
\fBerroronlymail\fR
\fBbooléen\fR(false)
Envoyer la sortie par courriel uniquement si la tâche a retourné une valeur de sortie autre que zéro.
\fBVoir aussi\fR\~: options mail, mailto, nolog, forcemail\&.
.TP
\fBexesev\fR
\fBbooléen\fR(false)
Une tâche peut-elle être exécutée plusieurs fois
simultanément\~?
\fBVoir aussi\fR\~: options serialonce, lavgonce\&.
.TP
\fBfirst\fR
.TP
\fBf\fR
\fBtime-value\fR
Temps avant la première exécution d'une tâche basée sur le
temps de fonctionnement du système (lignes «\~@\~»).
Utile dans les cas suivants\~: vous avez plusieurs tâches à
exécuter, disons, toutes les heures. En positionnant différentes
valeurs «\~first\~» pour chaque tâche, vous évitez
que celles-ci soient lancées simultanément chaque fois.
Vous pouvez également la mettre à 0, ce qui est pratique
lorsqu'elle est utilisée avec l'option volatile\&.
.TP
\fBforcemail\fR
\fBbooléen\fR(false)
Envoyer la sortie par courriel même si celle-ci est vide.
\fBVoir aussi\fR\~: options mail, mailto, erroronlymail, nolog\&.
.TP
\fBlavg\fR
\fBréel\fR(0)
\fBréel\fR(0)
\fBréel\fR(0)
Définir les valeurs de la charge moyenne du système sur 1,
5 et 15 minutes (dans cet ordre) en dessous desquelles la tâche
pourra être lancée. Ces valeurs ne peuvent avoir qu'une seule
décimale (c.-à-d. «\~2.3\~»). S'il y en a plus, la valeur
sera arrondie. Mettre une valeur à 0 pour ignorer la charge
moyenne correspondante. Si vous mettez toutes les valeurs à 0,
la tâche sera lançée sans tenir compte de la charge système.
\fBVoir aussi\fR\~: options lavg1, lavg5, lavg15,
until, lavgonce, lavgor, lavgand,
strict, noticenotrun\&.
.TP
\fBlavg1\fR
.TP
\fBlavg5\fR
.TP
\fBlavg15\fR
\fBréel\fR(0)
Définir le seuil des valeurs de charge moyenne du système
sur 1, 5 ou 15 minutes. Définir l'une d'elles à 0 pour ignorer
la charge moyenne correspondante.
\fBVoir aussi\fR\~: options lavg\&.
.TP
\fBlavgand\fR
\fBbooléen\fR(true)
Effectuer un ET logique entre les valeurs de charge moyenne
du système à 1, 5 et 15 minutes.
\fBVoir aussi\fR\~: options lavg, lavgor\&.
.TP
\fBlavgonce\fR
\fBbooléen\fR(1)
Une tâche peut-elle être mise plusieurs fois simultanément
dans la file d'attente charge moyenne du système (Ndt\~:
lavg queue)\~?
\fBVoir aussi\fR\~: options lavg\&.
.TP
\fBlavgor\fR
\fBbooléen\fR(false)
Effectuer un OU logique entre les valeurs de charge moyenne
du système à 1, 5 et 15 minutes.
\fBVoir aussi\fR\~: options lavg, lavgand\&.
.TP
\fBmail\fR
.TP
\fBm\fR
\fBbooléen\fR(true)
Envoyer la sortie (s'il y en a) par courriel, ou non.
\fBVoir aussi\fR\~: options mailto, forcemail, nolog\&.
.TP
\fBmailto\fR
\fBemail-address\fR(nom
du propriétaire du fichier)
Envoyer la sortie (si nécessaire) par courriel à
«\~\fIemail-address\fR\~». Cela
peut être soit un nom d'utilisateur, soit une adresse courriel
complète. Une mailto déclarée mais vide (chaîne "") est
équivalente à «\~mail(false)\~».
\fBVoir aussi\fR\~: options mail, forcemail, nolog\&.
.TP
\fBnice\fR
.TP
\fBn\fR
\fBnice-value\fR
Modifier la priorité de la tâche. Une
\fBnice-value\fR est un entier
compris entre -20 (plus forte priorité) et 19 (plus faible
priorité). Seul le super-utilisateur est autorisé à utiliser
une valeur négative pour cette option.
.TP
\fBnolog\fR
\fBbooléen\fR(false)
Si elle est positionnée à «\~true\~», journaliser
seulement les erreurs des tâches correspondantes. Peut être
utile pour des tâches lancées très fréquemment, et/ou pour
réduire les accès disque sur un ordinateur portable.
\fBVoir aussi\fR\~: options mail, mailto, forcemail\&.
.TP
\fBnoticenotrun\fR
\fBbooléen\fR(false)
\fBfcron\fR devrait-il prévenir l'utilisateur par courriel de la
non exécution d'une tâche «\~%\~» ou d'une tâche
«\~&\~»\~? (à cause de l'arrêt du système dans les
deux cas ou d'une charge moyenne trop élevée dans le second cas).
\fBVoir aussi\fR\~: options lavg, strict\&.
.TP
\fBrandom\fR
\fBbooléen\fR(false)
Dans une ligne lancée
périodiquement, cette option répond à la question\~:
«\~Cette tâche devrait-elle être lancée aussitôt que possible
dans son intervalle de temps d'exécution (plus sûr), ou bien
\fBfcron\fR doit-il définir une date et heure aléatoire d'exécution
dans ce même intervalle de temps\~?\~». Veuillez noter
que si cette option est positionnée, la tâche peut ne pas être
lancée si \fBfcron\fR n'est pas en cours d'exécution durant
\fBtout\fR l'intervalle d'exécution. En outre,
sachez qu'il peut être relativement facile pour une personne
compétente de deviner l'heure de la prochaine exécution d'une
tâche utilisant l'option random\~: il est donc préférable
de ne pas baser la sécurité de quelque chose de sensible sur
l'aléa de cette option. Cependant, cela ne devrait pas poser de
problème pour la plupart de ses utilisations.
.TP
\fBreset\fR
\fBbooléen\fR
Positionner toutes les options à leur valeur par défaut.
.TP
\fBrunas\fR
\fButilisateur\fR
Lancer avec les permissions et l'environnement de
«\~\fIutilisateur\fR\~» (seul le
super-utilisateur est autorisé à utiliser cette option).
.TP
\fBrunfreq\fR
.TP
\fBr\fR
\fBentier\fR
Lancer toutes les «\~\fIrunfreq\fR\~»
correspondances de date et d'heure. (Cette option est ignorée
dans le cas d'entrées basées sur le temps
écoulé depuis le démarrage du système).
.TP
\fBserial\fR
.TP
\fBs\fR
\fBbooléen\fR(false)
\fBFcron\fR fait tourner au plus 1 tâche(s)
séquentielle(s) en même temps (c.-à-d. pour lesquelles l'option
serial est définie), et autant de tâches qui sont à la fois
séquentielles et dont l'exécution dépend aussi de la charge
système (autrement dit pour lesquelles les options serial et
lavg sont définies). Cette valeur peut être modifiée grâce à
l'option \fB-m\fR de \fBfcron\fR\&. Cette option trouve
toute son utilité dans le cas de tâches lourdes afin
d'éviter une surcharge du système.
\fBVoir aussi\fR\~: options serialonce, lavg\&.
.TP
\fBserialonce\fR
\fBbooléen\fR(0)
Une tâche peut-elle être mise plusieurs fois simultanément
dans la file d'attente séquentielle\~? (Ndt\~: serial
queue)
\fBVoir aussi\fR\~: options exesev, lavgonce\&.
.TP
\fBstdout\fR
\fBbooléen\fR(false)
Si \fBfcron\fR s'exécute en arrière plan, permettre la sortie
des tâches sur stderr/stdout plutôt que par courriel ou que
l'ignorer.
\fBVoir aussi\fR\~: option \fB--once\fR de \fBfcron\fR(8)\&.
.TP
\fBstrict\fR
\fBbooléen\fR(true)
Lorsqu'une tâche «\~%\~» de la file d'attente charge
moyenne du système (Ndt\~: lavg queue) est à la fin de
l'intervalle de temps d'exécution, doit-elle être retirée de la
file d'attente (strict(true), ainsi la tâche ne sera pas
exécutée), ou bien doit-elle y rester jusqu'à ce que la charge
moyenne du système permette son exécution (strict(false))\~?
\fBVoir aussi\fR\~: options lavg, noticenotrun\&.
.TP
\fBtimezone\fR
\fBtimezone-name\fR(fuseau
horaire du système)
Lancer la tâche dans le fuseau horaire fourni. timezone-name
est une chaîne qui doit être valide du point de vue de la
variable d'environnement TZ\~: consultez la documentation de
votre système pour plus de détails. Par exemple,
«\~Europe/Paris\~» est valide sur un système Linux.
Cette option gère correctement le changement d'heure.
Veuillez noter que si vous fournissez un argument
timezone-name erroné, celui-ci sera SILENCIEUSEMENT ignoré,
et la tâche sera exécutée dans le fuseau horaire du système.
ATTENTION\~: N'utilisez PAS simultanément les options
timezone et tzdiff\~! Cela n'a pas de raison d'être, et
timezone est plus maligne que tzdiff.
\fBVoir aussi\fR\~: option tzdiff\&.
.TP
\fBtzdiff\fR
\fBentier\fR(0)
ATTENTION\~: cette option est obsolète\~: utilisez
plutôt l'option timezone\~!
Différence de fuseau horaire (en heures, valeur comprise
entre -24 et 24) entre l'heure du système et l'heure locale
réelle. Cette option permet à l'utilisateur de définir ses lignes
«\~&\~» et «\~%\~» en temps local. Veuillez
noter que cette valeur est définie pour l'ensemble du fichier
\fBfcrontab\fR, et que seule la dernière déclaration est prise en
compte. tzdiff est quelque peu stupide\~: elle ne gère pas
le changement d'heure alors que l'option timezone le fait,
aussi, vous devriez utiliser cette dernière.
\fBVoir aussi\fR\~: option timezone\&.
.TP
\fBuntil\fR
\fBtime-value\fR(0)
Définir le délai d'attente maximal pour les valeurs de
charge système. Si le délai est dépassé, la tâche sera lancée
indépendemment de la charge système. Définir until à 0 pour
désactiver le délai d'attente.
\fBVoir aussi\fR\~: option lavg\&.
.TP
\fBvolatile\fR
\fBbooléen\fR(false)
Quand cette option est activée, la tâche est basée sur un
temps «\~volatile\~», qu'on pourrait aussi qualifier de
«\~non persistant\~». Plus précisément, \fBfcron\fR ne
«\~retient\~» pas le temps écoulé depuis la dernière
exécution des tâches «\~volatiles\~» entre deux
démarrages de \fBfcron\fR, et agit comme si les lignes avaient été
fraîchement ajoutées à chaque démarrage de \fBfcron\fR\&. Ainsi,
l'option first s'appliquera par exemple pour les lignes
«\~volatiles\~» à chaque démarrage de fcron. Cette option
est en particulier utile lorsque \fBfcron\fR est lancé à partir d'un
script qui tourne, par exemple, seulement pendant une connexion
à Internet non permanente\~: l'exécution des tâches
«\~volatiles\~» est alors basée sur le temps depuis le
début de la connexion et le lancement de \fBfcron\fR plutôt que sur
le temps absolu. Enfin, veuillez noter que cette option s'associe
bien à l'option first\&.
\fBVoir aussi\fR\~: options first, stdout, Entrées basées sur le temps écoulé depuis le
démarrage du système, l'option \fB--once\fR de
\fBfcron\fR dans \fBfcron\fR(8)\&.
.PP
Un argument de type \fBbooléen\fR peut ne pas être indiqué,
auquel cas les parenthèses ne seront pas utilisées et il sera
interprété comme étant true\~; les chaînes
«\~true\~», «\~yes\~» ou «\~1\~» signifient
true\~; et les chaînes «\~false\~»,
«\~no\~» ou «\~0\~» signifient
false\&. Voir plus haut les explications sur les
valeurs de temps (section «\~Entrées basées
sur le temps écoulé depuis le démarrage du système\~»).
.PP
Veuillez noter que dayand et
dayor sont, en fait, la même option\~: une valeur
«\~false\~» pour dayand est équivalente à
une valeur «\~true\~» pour dayor et
réciproquement, une valeur «\~false\~» pour
dayor est équivalente à une valeur
«\~true\~» pour dayand\&. C'est également
le cas pour les options lavgand et
lavgor\&.
.PP
Veuillez noter un cas particulier à gérer\~: une tâche aurait
due être placée dans la file d'attente séquentielle, *mais* la
précédente entrée de cette tâche n'est pas encore achevée à cause
d'une forte charge système ou d'un quelconque événement extérieur.
L'option serialonce répond à cette question\~:
«\~La nouvelle entrée de cette tâche doit-elle être
ignorée\~?\~». De cette façon, on peut distinguer d'une part
les tâches sans contrainte forte sur l'heure d'exécution qui doivent
être exécutées un nombre de fois bien défini (serial(yes),
serialonce(false)), et d'autre part les tâches toujours sans contrainte
forte sur l'heure d'exécution mais dont le nombre d'exécutions n'est
pas important ou qu'il est inutile de lancer deux fois d'affilée
(serial(true), serialonce(true)), qu'on ne rentrera donc pas une
deuxième fois dans la file séquentielle de façon à éviter de charger
le système inutilement. Par exemple, «\~Payer ses employés\~»
est une tâche qui doit être exécutée exactement une fois par mois
(serialonce(false)), alors que «\~faire le ménage\~» doit être
exécutée de préférence une fois par semaine, mais il est inutile de le
faire deux fois d'affilée si par hasard on avait pris du retard
(serialonce(true)).
.PP
Les mêmes considérations s'appliquent pour la file d'attente charge
système et peuvent être exprimées par l'option
lavgonce\&.
.PP
De plus, si les files d'attente séquentielle et charge système
contiennent respectivement plus de 30 et 30
tâches, toute nouvelle tâche sera rejetée (et donc non exécutée) pour
éviter une saturation de ressources système. Dans ce cas, un message
d'erreur sera journalisé à travers syslog.
.PP
Enfin, s'il reste des tâches dans les files d'attente séquentielle
et charge système au moment de l'arrêt de \fBfcron\fR, celles-ci seront
déposées une fois dans leur file correspondante au redémarrage
(l'ordre peut ne pas être conservé).
.PP
.SS "EXEMPLE DE DÉCLARATION D'OPTION\\~:"
.nf
!reset,serial(true),dayor,bootrun(0),mailto(root),lavg(.5,2,1.5)
.fi
.SH "EXEMPLES"
.PP
.SS "EXEMPLE D'UN FICHIER FCRONTAB UTILISATEUR"
.nf
# utiliser /bin/bash pour lancer les commandes, quoique puisse indiquer /etc/passwd
SHELL=/bin/bash
# envoyer la sortie par courriel à l'utilisateur thib,
# quelque soit le propriétaire de ce fcrontab.
!mailto(thib)
# définir une variable équivalente à " Salut thib et paul ! "
# les caractères «\~nouvelle ligne\~» sont échappés avec
# une barre oblique inverse «\~\\\~» et les guillemets servent
# à conserver les espaces de début et de fin de chaîne
TEXT= " Salut\\
thib et\\
paul ! "
# on veut utiliser la file d'attente séquentielle mais pas l'option bootrun
!serial(true),b(0)
# lancer la première fois après 5 minutes de fonctionnement du système,
# puis toutes les heures par la suite
@first(5) 1h echo "Lancer toutes les heures"
# lancer tous les jours
@ 1d echo "fcron quotidien"
# lancer une fois dans la matinée et une fois dans l'après-midi si le système
# est en fonctionnement à n'importe quel moment pendant ces intervalles de temps
%hours * 8-12,14-18 * * * echo "Hé patron, je bosse aujourd'hui !"
# lancer une fois par semaine à l'heure du déjeuner
%weekly * 12-13 echo "J'ai laissé allumé mon système au moins une fois\\
à l'heure du déjeuner cette semaine."
# lancer tous les samedi et dimanche à 9:05
5 9 * * sat,sun echo "Bonjour Thibault !"
# lancer tous les jours pairs du mois de mars à 18:00, sauf le 16
0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer à la maison !"
# la ligne précédente est équivalente à
& 0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer à la maison !"
# mettre toutes les options à leur valeur par défaut et définir runfreq
# pour les lignes qui vont suivre
!reset,runfreq(7)
# lancer une fois toutes les 7 correspondances (grâce à la déclaration précédente),
# ainsi, si le système est en fonctionnement tous les jours à 10 heures,
# la commande sera lancée une fois par semaine
& 0 10 * * * echo "Si vous avez vu ce message pour la dernière fois il y a 7 jours,\\
c'est que cette machine a fonctionné tous les jours à 10 heures durant la dernière semaine.\\
Si vous avez eu ce message il y a 8 jours, c'est que cette machine n'a pas fonctionné\\
un jour à 10:00 heures depuis le dernier message, etc."
# attendre toutes les heures que la charge système moyenne sur 5 minutes
# soit inférieure à 0.9
@lavg5(0.9) 1h echo "La charge moyenne système est faible"
# attendre au maximum 5 heures chaque jour une baisse de la charge système
@lavgand,lavg(1,2.0,3.0),until(5h) 1d echo "La charge système vient de diminuer"
# attendre le meilleur moment pour lancer une tâche lourde
@lavgor,lavg(0.8,1.2,1.5),nice(10) 1w echo "C'est une très lourde tâche"
# lancer une fois toutes les nuits soit entre 21:00 et 23:00,
# soit entre 3:00 et 6:00
%nightly,lavg(1.5,2,2) * 21-23,3-6 echo "Il est temps de récupérer\\
la dernière version de Mozilla !"
.fi
.SH "FICHIERS"
.TP
\fB\fI/usr/local/etc/fcron.conf\fB\fR
Fichier de configuration de \fBfcron\fR, \fBfcrontab\fR et \fBfcrondyn\fR\~:
contient les chemins (répertoire spool, fichier pid) et les
programmes par défaut à utiliser (éditeur, shell, etc.). Voir
\fBfcron.conf\fR(5) pour plus de
détails.
.TP
\fB\fI/usr/local/etc/fcron.allow\fB\fR
Utilisateurs autorisés à utiliser \fBfcrontab\fR et \fBfcrondyn\fR
(un seul nom par ligne, le nom spécial «\~all\~»
signifiant tout le monde).
.TP
\fB\fI/usr/local/etc/fcron.deny\fB\fR
Utilisateurs qui ne sont pas autorisés à utiliser \fBfcrontab\fR
et \fBfcrondyn\fR (même format que le fichier précédent).
.TP
\fB\fI/usr/local/etc/pam.d/fcron\fB (ou \fI/usr/local/etc/pam.conf\fB)\fR
Fichier de configuration PAM pour
\fBfcron\fR\&. Voir \fBpam\fR(8) pour plus de détails.
.SH "VOIR AUSSI"
\fBfcrontab\fR(1),
\fBfcrondyn\fR(1),
\fBfcrontab\fR(5),
\fBfcron.conf\fR(5),
\fBfcron\fR(8).
Si vous êtes en train d'apprendre à utiliser fcron, je vous
suggère plutôt de lire la version HTML de la documentation (si ce n'est pas
déjà ce que vous faites en ce moment\~! :) )\~: le contenu est le même, mais
il est plus aisé de naviguer grâce aux hyperliens.
.SH "AUTEUR"
.PP
Thibault Godouet
.SH "TRADUCTION"
.PP
Ce document est une traduction réalisée par Alain Portal
le 6 février 2006.
.PP
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document
est toujours consultable via la commande\~: «\~\fBLANG=en
man 5 fcrontab\fR\~».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas,
toute erreur dans cette page de manuel.