Content-type: text/html Manpage of FCRONTAB

FCRONTAB

Section: (5)
Updated: 6 février 2006
Index Return to Main Contents

 

NOM

fcrontab - Tables de configuration de fcron.  

DESCRIPTION

Un fichier fcrontab est un fichier qui contient toutes les tables utilisées par le démon fcron(8). Cela permet à un utilisateur de dire au démon~: «~Exécute cette tâche à tel moment~». Chaque utilisateur a sa propre table fcrontab, 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).

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 fcrontab peut être soit~:

*
une configuration d'environnement,
*
une configuration d'option,
*
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,
*
des entrées basées sur un temps absolu (comme les entrées normales de crontab), ou
*
des entrées lancées périodiquement.

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~».  

LA CONFIGURATION DE L'ENVIRONNEMENT

La configuration de l'environnement est de la forme

nom = valeur

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.

Lorsque fcron exécute une commande, il positionne toujours les variables d'environnement USER, HOME, et SHELL comme elles sont définies dans /etc/passwd pour le propriétaire de la table fcrontab dont la commande est issue. Les variables d'environnement HOME et SHELL peuvent être écrasées par la configuration contenue dans le fichier fcrontab, mais USER ne peut pas l'être. Toute autre affectation d'environnement définie dans le fcrontab de l'utilisateur est effectuée et la commande exécutée.

De plus, la variable spéciale MAILTO vous permet d'indiquer à fcron à 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.  

ENTRÉES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DÉMARRAGE DU SYSTÈME

Les entrées des commandes qui doivent être exécutées une fois toutes les m minutes de l'exécution de fcron (qui sont normalement les mêmes m minutes de l'exécution du système) sont de la forme

@options fréquence commande

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

À la place de options, l'utilisateur peut mettre une valeur de temps qui sera interprétée comme @first(<temps>). Si l'option first n'est pas positionnée, la valeur de «~fréquence~» est utilisée.

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).

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 fcron 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.

Voir aussi~: les options first, mail, nolog, serial, lavg, nice, runas (voir plus loin).

 

QUELQUES EXEMPLES DE LIGNES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DÉMARRAGE DU SYSTÈME

# 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
 

ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE

Le deuxième type d'entrée d'un fichier fcrontab 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~:

&options min hrs jour-du-mois mois jour-de-la-semaine commande

Veuillez noter que la commande shell peut être précédée par un nom d'utilisateur, ce qui est équivalent à runas (<user>)~: 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)

Un champ est toujours renseigné soit par une astérique «~*~», qui signifie un intervalle comme «~premier-dernier, soit un nombre seul, soit une liste.

Les listes sont des nombres ou des intervalles séparés par des virgules «~,~». Par exemple~: «~2,5,15,23~».

Les intervalles de nombres sont de la forme «~<début>-<fin>~», où «~début~» et «~fin~» sont inclus. Par exemple, «~3-5~» signifie les valeurs 3, 4 et 5. Vous pouvez également ajouter un «~/nombre~» optionnel à l'intervalle, où le nombre 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 «~~nombre~» 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~:

a[-b[/c][~d][~e][...]][,f[-g[/h][~i][~j][...]]][,...]

où les lettres sont des nombres entiers.

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.

Des intervalles peuvent être inclus dans une liste comme un simple nombre. Par exemple~: «~2,5-10/2~6,15,20-25,30~».

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.

Si un jour de mois et un jour de semaine sont donnés, la commande sera exécutée seulement si les deux correspondent au jour et à l'heure actuels à moins que l'option dayor n'ait été positionnée. Par exemple, avec la ligne

5 10 31 * 7 echo ''
echo sera exécutée seulement les jours qui sont un dimanche ET le 31ème jour du mois, à 10:05.

Voir aussi~: options dayor, bootrun, runfreq, mail, nolog, serial, lavg, nice, runas (voir plus loin).

 

QUELQUES EXEMPLES D'ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE

# 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"
 

ENTRÉES LANCÉES PÉRIODIQUEMENT

Le troisième type d'entrée fcrontab commence par le caractère «~%~», suivi par un mot-clef pris parmi une des trois différentes listes, puis par des options.  

MOTS-CLEFS *LY

Ces mots-clefs sont~:

hourly , daily , monthly , weekly

Ces mots-clefs indiquent à fcron 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 weekly indique à fcron de lancer une commande une fois par semaine entre le lundi et le dimanche.

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~:

"CHAMPS DE TEMPS NÉCESSAIRES À CHAQUE MOT-CLEF" Mots-clefs~: doit être suivi par les champs~: hourly, midhourly~: minutes. daily, middaily, nightly, weekly, midweekly~: minutes et heures. monthly, midmonthly : minutes, heures et jours.  

MOTS-CLEFS MID*LY

Ils sont similaires aux mots-clefs «~*ly~»~:

midhourly , middaily , nightly , midmonthly , midweekly

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~: midweekly lancera une commande une fois entre le jeudi et le mercredi. Veuillez noter que nightly est équivalent à middaily.

Par exemple~:

%nightly,mail(no) * 21-23,3-5 echo "une entrée nigthly"

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~»).

Voir aussi~: options lavg, noticenotrun, strict, mail, nolog, serial, nice, runas, random (voir plus loin).  

MOTS-CLEFS *S

Ce sont~:

mins , hours , days , mons , dow

Ces mots-clefs agissent différemment, comme suit~:

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 hours empêche le champ mins 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) (dow signifie «~day of week~»).

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~:

%hours * 0-23 * * * echo "Ligne INCORRECTE !"
mais ceci l'est~:

%hours * 0-22 * * * echo "Ok."

Note :

un nombre seul dans un champ est considéré comme un intervalle de temps~:

%mins 15 2-4 * * * echo
lancera echo tous les jours à 2:15, 3:15 ET 4:15.

Mais tous les champs suivants les mots-clefs sont ignorés dans la définition d'un intervalle de temps~:

%hours 15 2-4 * * * echo
lancera echo seulement UNE FOIS soit à 2:15, soit à 3:15 OU BIEN à 4:15.

Voir aussi~: option random (voir plus loin).  

OPTIONS

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.

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

option[(arg1[,arg2][...])][,option[(arg1[...])]][...]

option 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"

bootrun
b
booléen(false)

Lancer une ligne «~&~» au démarrage de fcron si celle-ci avait dû être lancée pendant l'arrêt du système.

dayand
booléen(true)

Effectuer un ET logique entre le jour de la semaine et le jour du mois.

Voir aussi~: option dayor.

dayor
booléen(false)

Effectuer un OU logique entre le jour de la semaine et le jour du mois.

Voir aussi~: option dayand.

exesev
booléen(false)

Une tâche peut-elle être exécutée plusieurs fois simultanément~?

Voir aussi~: options serialonce, lavgonce.

first
f
time-value

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.

forcemail
booléen(false)

Envoyer la sortie par courriel même si celle-ci est vide.

Voir aussi~: options mail, mailto, nolog.

lavg
réel(0) réel(0) réel(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.

Voir aussi~: options lavg1, lavg5, lavg15, until, lavgonce, lavgor, lavgand, strict, noticenotrun.

lavg1
lavg5
lavg15
réel(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.

Voir aussi~: options lavg.

lavgand
booléen(true)

Effectuer un ET logique entre les valeurs de charge moyenne du système à 1, 5 et 15 minutes.

Voir aussi~: options lavg, lavgor.

lavgonce
booléen(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)~?

Voir aussi~: options lavg.

lavgor
booléen(false)

Effectuer un OU logique entre les valeurs de charge moyenne du système à 1, 5 et 15 minutes.

Voir aussi~: options lavg, lavgand.

mail
m
booléen(true)

Envoyer la sortie (s'il y en a) par courriel, ou non.

Voir aussi~: options mailto, forcemail, nolog.

mailto
email-address(nom du propriétaire du fichier)

Envoyer la sortie (si nécessaire) par courriel à «~email-address~». 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)~».

Voir aussi~: options mail, forcemail, nolog.

nice
n
nice-value

Modifier la priorité de la tâche. Une nice-value 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.

nolog
booléen(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.

Voir aussi~: options mail, mailto, forcemail.

noticenotrun
booléen(false)

fcron 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).

Voir aussi~: options lavg, strict.

random
booléen(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 fcron 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 fcron n'est pas en cours d'exécution durant tout 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.

reset
booléen

Positionner toutes les options à leur valeur par défaut.

runas
utilisateur

Lancer avec les permissions et l'environnement de «~utilisateur~» (seul le super-utilisateur est autorisé à utiliser cette option).

runfreq
r
entier

Lancer toutes les «~runfreq~» 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).

serial
s
booléen(false)

Fcron 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 -m de fcron. Cette option trouve toute son utilité dans le cas de tâches lourdes afin d'éviter une surcharge du système.

Voir aussi~: options serialonce, lavg.

serialonce
booléen(0)

Une tâche peut-elle être mise plusieurs fois simultanément dans la file d'attente séquentielle~? (Ndt~: serial queue)

Voir aussi~: options exesev, lavgonce.

stdout
booléen(false)

Si fcron 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.

Voir aussi~: option --once de fcron(8).

strict
booléen(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))~?

Voir aussi~: options lavg, noticenotrun.

timezone
timezone-name(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.

Voir aussi~: option tzdiff.

tzdiff
entier(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 fcrontab, 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.

Voir aussi~: option timezone.

until
time-value(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.

Voir aussi~: option lavg.

volatile
booléen(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, fcron ne «~retient~» pas le temps écoulé depuis la dernière exécution des tâches «~volatiles~» entre deux démarrages de fcron, et agit comme si les lignes avaient été fraîchement ajoutées à chaque démarrage de fcron. Ainsi, l'option first s'appliquera par exemple pour les lignes «~volatiles~» à chaque démarrage de fcron. Cette option est en particulier utile lorsque fcron 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 fcron plutôt que sur le temps absolu. Enfin, veuillez noter que cette option s'associe bien à l'option first.

Voir aussi~: options first, stdout, Entrées basées sur le temps écoulé depuis le démarrage du système, l'option --once de fcron dans fcron(8).

Un argument de type booléen 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~»).

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.

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)).

Les mêmes considérations s'appliquent pour la file d'attente charge système et peuvent être exprimées par l'option lavgonce.

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.

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 fcron, celles-ci seront déposées une fois dans leur file correspondante au redémarrage (l'ordre peut ne pas être conservé).

 

EXEMPLE DE DÉCLARATION D'OPTION\~:

!reset,serial(true),dayor,bootrun(0),mailto(root),lavg(.5,2,1.5)
 

EXEMPLES

 

EXEMPLE D'UN FICHIER FCRONTAB UTILISATEUR

# 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 !"
 

FICHIERS

/etc/fcron.conf
Fichier de configuration de fcron, fcrontab et fcrondyn~: contient les chemins (répertoire spool, fichier pid) et les programmes par défaut à utiliser (éditeur, shell, etc.). Voir fcron.conf(5) pour plus de détails.
/etc/fcron.allow
Utilisateurs autorisés à utiliser fcrontab et fcrondyn (un seul nom par ligne, le nom spécial «~all~» signifiant tout le monde).
/etc/fcron.deny
Utilisateurs qui ne sont pas autorisés à utiliser fcrontab et fcrondyn (même format que le fichier précédent).
/etc/pam.d/fcron (or /etc/pam.conf)
Fichier de configuration PAM pour fcron. Voir pam(8) pour plus de détails.
 

VOIR AUSSI

fcrontab(1), fcrondyn(1), fcrontab(5), fcron.conf(5), fcron(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.  

AUTEUR

Thibault Godouet <fcron@free.fr>  

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 6 février 2006.

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~: «~LANG=en man 5 fcrontab~». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 

Index

NOM
DESCRIPTION
LA CONFIGURATION DE L'ENVIRONNEMENT
ENTRÉES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DÉMARRAGE DU SYSTÈME
QUELQUES EXEMPLES DE LIGNES BASÉES SUR LE TEMPS ÉCOULÉ DEPUIS LE DÉMARRAGE DU SYSTÈME
ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE
QUELQUES EXEMPLES D'ENTRÉES BASÉES SUR UNE DATE ET UNE HEURE
ENTRÉES LANCÉES PÉRIODIQUEMENT
MOTS-CLEFS *LY
MOTS-CLEFS MID*LY
MOTS-CLEFS *S
OPTIONS
EXEMPLE DE DÉCLARATION D'OPTION\~:
EXEMPLES
EXEMPLE D'UN FICHIER FCRONTAB UTILISATEUR
FICHIERS
VOIR AUSSI
AUTEUR
TRADUCTION

This document was created by man2html, using the manual pages.
Time: 23:12:56 GMT, February 12, 2006