FCRONTAB(5) FCRONTAB(5) NAME fcrontab - Tables de configuration de fcron DESCRIPTION Un fichier fcrontab est un fichier qui contient toutes les tables utilisees par le demon fcron(8). Cela permet a un utilisateur de dire au demon : << Execute cette tache a tel moment >>. Chaque utilisateur a sa propre table fcrontab, et les commandes contenues dans une table seront executees sous l'identifiant du proprietaire de la table. Seul le super-utilisateur peut lancer une tache avec les droits d'un autre utilisateur en utilisant l'option runas (voir plus loin). Les lignes blanches, les lignes debutant par le symbole diese << # >> (qui sont considerees comme etant des commentaires), les espaces ou les tabulations placees en debut de ligne sont ignorees. Chaque ligne d'un fichier fcrontab peut etre soit : o une configuration d'environnement, o une configuration d'option, o des entrees basees sur la duree totale de fonctionnement du systeme depuis la derniere execution de la tache, o des entrees basees sur un temps absolu (comme les entrees normales de crontab), ou o des entrees lancees periodiquement. Toute ligne logique (une entree ou une affectation) peut etre scindee en plusieurs lignes effectives (des lignes finissant par un caractere fin de ligne) en placant une barre oblique inverse << \ >> avant le caractere fin de ligne << \n >>. LA CONFIGURATION DE L'ENVIRONNEMENT La configuration de l'environnement est de la forme nom = valeur ou les espaces autour du signe d'egalite << = >> sont ignorees et optionnelles. Les espaces en fin de ligne sont egalement ignorees, mais vous pouvez placer la valeur entre guillemets (simple ou double, mais appareilles) pour preserver les caracteres blancs dans la valeur. Lorsque fcron execute une commande, il positionne toujours les variables d'environnement USER, HOME, et SHELL comme elles sont definies dans /etc/passwd pour le proprietaire de la table fcrontab dont la commande est issue. Les variables d'environnement HOME et SHELL peuvent etre ecrasees par la configuration contenue dans le fichier fcrontab, mais USER ne peut pas l'etre. Toute autre affectation d'environnement definie dans le fcrontab de l'utilisateur est effectuee et la commande executee. De plus, la variable speciale MAILTO vous permet d'indiquer a fcron a qui envoyer par courriel la sortie de la commande. Veuillez noter que MAILTO est en fait equivalente a la declaration globale de l'option mailto (voir plus loin). Elle n'est utilisee que pour assurer une retrocompatibilite, aussi, vous devriez plutot utiliser directement l'option mailto. ENTREES BASEES SUR LE TEMPS ECOULE DEPUIS LE DeMARRAGE DU SYSTEME Les entrees des commandes qui doivent etre executees une fois toutes les m minutes de l'execution de fcron (qui sont normalement les memes m minutes de l'execution du systeme) sont de la forme @options frequence commande ou frequence est une valeur de temps de la forme valeur*multiplicateur+valeur*multiplicateur+...+valeur-en-minutes comme <<\ 12h02\ >> ou <<\ 3w2d5h1\ >>. La premiere signifie <<\ 12 heures et 2 minutes d'execution de fcron\ >> tant dis que la seconde signifie <<\ 3 semaines, 2 jours, 5 heures et 1 minute d'execution 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 A la place de options, l'utilisateur peut mettre une valeur de temps qui sera interpretee comme @first(). Si l'option first n'est pas positionnee, la valeur de << frequence >> est utilisee. Ce type d'entree ne garantie pas une date et heure d'execution (vu que la tache est retardee a chaque demarrage du systeme par le temps ecoule depuis l'arret du systeme), mais peut etre pratique pour des taches dependant du nombre de choses faites par les utilisateurs (par exemple, il vaudrait mieux verifier le systeme de fichiers apres un certain nombre d'utilisation par les utilisateurs plutot que tous les x jours, vu que le systeme peut etre lance de 1 jour a x jours pendant cet intervalle de x jours). Le temps restant avant la prochaine execution est sauvegarde toutes les 1800 secondes (afin de limiter les dommages provoques par un plantage) et lorsque fcron quitte apres avoir recu un signal SIGTERM, c.-a-d. lorsque l'on arrete le systeme. Ainsi, ce type d'entree est particulierement utile pour des systemes qui ne tournent pas de maniere reguliere. La syntaxe etant tres simple, il est egalement pratique pour des taches qui n'ont pas besoin d'etre executees a une date et une heure specifique. Voir aussi : les options first, mail, nolog, serial, lavg, nice, runas (voir plus loin). QUELQUES EXEMPLES DE LIGNES BASEES SUR LE TEMPS ECOULE DEPUIS LE DEMARRAGE DU SYSTEME # Recuperer vos courriels toutes les 30 minutes @ 30 getmails -all # Effectuer quelques tests de securite toutes les 48 heures de fonctionnement # du systeme, envoyer un courriel au super-utilisateur meme s'il n'a pas de sortie @mailto(root),forcemail 2d /etc/security/msec/cron-sh/security.sh ENTREES BASEES SUR UNE DATE ET UNE HEURE Le deuxieme type d'entree d'un fichier fcrontab commence par un caractere << & >> optionnel qui peut etre immediatement suivi par un nombre optionnel definissant la frequence d'execution (ceci est equivalent a l'option runfreq) ou par une declaration d'options ; il possede 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 etre precedee par un nom d'utilisateur, ce qui est equivalent a runas () : vu que cela n'existe que pour une retrocompatibilite, vous devriez plutot utiliser l'option runas (voir plus loin). La frequence est interpretee de la facon suivante : << lancer cette commande apres 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 renseigne soit par une asterique << * >>, qui signifie un intervalle comme << premier-dernier, soit un nombre seul, soit une liste. Les listes sont des nombres ou des intervalles separes par des virgules << , >>. Par exemple : << 2,5,15,23 >>. Les intervalles de nombres sont de la forme << - >>, ou << debut >> et << fin >> sont inclus. Par exemple, << 3-5 >> signifie les valeurs 3, 4 et 5. Vous pouvez egalement ajouter un << /nombre >> optionnel a l'intervalle, ou le nombre signifie le pas dans l'intervalle. Par exemple, << 0-23/2 >> peut etre utilise dans le champ heure pour specifier l'execution d'une commande toutes les heures paires. Enfin, un ou plusieurs << ~nombre >> peuvent etre ajoutes afin de desactiver certaines valeurs dans l'intervalle. Par exemple, << 5-8~6~7 >> est equivalent a << 5,8 >>. La forme finale d'un champ est : a[-b[/c][~d][~e][...]][,f[-g[/h][~i][~j][...]]][,...] ou les lettres sont des nombres entiers. Vous pouvez egalement utiliser unE asterisque << * >> dans un champ. Il agira comme << premier-dernier >>. Par exemple, un << * >> dans le champ minute signifie toutes les minutes de la minute 0 a la minute 59. Des intervalles peuvent etre 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 etre utilises pour les champs << mois >> et << jour de la semaine >>. Pour ce faire, utilisez les trois premieres lettres du jour ou du mois concerne (la casse n'a pas d'importance). Veuillez noter que les noms sont utilises 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 donnes, la commande sera executee seulement si les deux correspondent au jour et a l'heure actuels a moins que l'option dayor n'ait ete positionnee. Par exemple, avec la ligne 5 10 31 * 7 echo '' echo sera executee seulement les jours qui sont un dimanche ET le 31eme jour du mois, a 10:05. Voir aussi : options dayor, bootrun, runfreq, mail, nolog, serial, lavg, nice, runas (voir plus loin). QUELQUES EXEMPLES D'ENTREES BASEES SUR UNE DATE ET UNE HEURE # lancer macommande tous les jours a 12:05, 12:35, 13:05, 13:35, # 14:05 *et* 14:35 & 05,35 12-14 * * * macommande -u moi -o fichier # recuperer les courriels toutes les heures aux minutes 20, 21, 22, et 24. 20-24~23 * * * * getmail # sauvegarder mon travail de la journee toutes les nuits a 03:45 avec une # faible priorite, sauf le dimanche, envoyer la sortie par courriel a jim et # lancer cette tache au demarrage si la machine etait eteinte a 03:45 &nice(10),mailto(jim),bootrun 45 03 * * *~0 "save --mon travail" ENTREES LANCEES PERIODIQUEMENT Le troisieme type d'entree fcrontab commence par le caractere << % >>, suivi par un mot-clef pris parmi une des trois differentes listes, puis par des options. MOTS-CLEFS *LY Ces mots-clefs sont : hourly , daily , monthly , weekly Ces mots-clefs indiquent a fcron de lancer la commande une fois entre le debut 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 a 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 necessaires (comme ils sont definis dans << Entrees basees sur une date et une heure >> (voir plus haut)) pour preciser quand la commande devrait etre lancee dans chaque intervalle de temps : "CHAMPS DE TEMPS NECESSAIRES A CHAQUE MOT-CLEF" Mots-clefs : doit etre 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 >>, excepte que les intervalles de temps sont definis 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 equivalent a middaily. Par exemple : %nightly,mail(no) * 21-23,3-5 echo "une entree nigthly" lancera la commande une fois par nuit soit entre 21:00 et 23:59, soit entre 3:00 et 5:59 (elle sera executee aussitot que possible ; pour modifier ce comportement, utilisez l'option random) et ne pas envoyer de courriel (etant donne que l'option mail a ete definie a << 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 differemment, comme suit : lancer cette commande unE fois durant CHAQUE intervalle de temps specifie, ignorant les champs suivants le mot-clef dans la definition de l'intervalle de temps (un hours empeche le champ mins d'etre considere comme un intervalle de temps, mais il sera utilise pour determiner quand la ligne devra etre lancee 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 memes champs utilises pour une ligne basee 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.-a-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 considere comme un intervalle de temps : %mins 15 2-4 * * * echo lancera echo tous les jours a 2:15, 3:15 ET 4:15. Mais tous les champs suivants les mots-clefs sont ignores dans la definition d'un intervalle de temps : %hours 15 2-4 * * * echo lancera echo seulement UNE FOIS soit a 2:15, soit a 3:15 OU BIEN a 4:15. Voir aussi : option random (voir plus loin). OPTIONS Les options peuvent etre positionnees soit pour chaque ligne situee apres la declaration, soit pour une ligne de maniere individuelle. Dans le premier cas, la configuration est faite sur une ligne complete apres un point d'exclamation << ! >>, dans le second cas, elle est faite apres l'un des symboles suivants << & >>, << % >> ou << @ >>, suivant le type de planification. Veuillez noter qu'une declaration d'option dans une planification ecrase la declaration globale de la meme option. Les options sont separees par des virgules << , >> et leurs arguments, s'il y en a, sont places entre parentheses << ( >> et << ) >>. Les espaces ne sont pas permises. Une declaration d'option est de la forme option[(arg1[,arg2][...])][,option[(arg1[...])]][...] ou option est soit le nom complet de l'option, soit son abreviation. Les options sont (avec leur valeur par defaut entre parentheses) : "OPTIONS VALIDES DANS UN FICHIER FCRONTAB" bootrun b booleen(false) Lancer une ligne << & >> au demarrage de fcron si celle-ci avait du etre lancee pendant l'arret du systeme. dayand booleen(true) Effectuer un ET logique entre le jour de la semaine et le jour du mois. Voir aussi : option dayor. dayor booleen(false) Effectuer un OU logique entre le jour de la semaine et le jour du mois. Voir aussi : option dayand. erroronlymail booleen(false) Envoyer la sortie par courriel uniquement si la tache a retourne une valeur de sortie autre que zero. Voir aussi : options mail, mailto, nolog, forcemail. exesev booleen(false) Une tache peut-elle etre executee plusieurs fois simultanement ? Voir aussi : options serialonce, lavgonce. first f time-value Temps avant la premiere execution d'une tache basee sur le temps de fonctionnement du systeme (lignes << @ >>). Utile dans les cas suivants : vous avez plusieurs taches a executer, disons, toutes les heures. En positionnant differentes valeurs << first >> pour chaque tache, vous evitez que celles-ci soient lancees simultanement chaque fois. Vous pouvez egalement la mettre a 0, ce qui est pratique lorsqu'elle est utilisee avec l'option volatile. forcemail booleen(false) Envoyer la sortie par courriel meme si celle-ci est vide. Voir aussi : options mail, mailto, erroronlymail, nolog. lavg reel(0) reel(0) reel(0) Definir les valeurs de la charge moyenne du systeme sur 1, 5 et 15 minutes (dans cet ordre) en dessous desquelles la tache pourra etre lancee. Ces valeurs ne peuvent avoir qu'une seule decimale (c.-a-d. << 2.3 >>). S'il y en a plus, la valeur sera arrondie. Mettre une valeur a 0 pour ignorer la charge moyenne correspondante. Si vous mettez toutes les valeurs a 0, la tache sera lancee sans tenir compte de la charge systeme. Voir aussi : options lavg1, lavg5, lavg15, until, lavgonce, lavgor, lavgand, strict, noticenotrun. lavg1 lavg5 lavg15 reel(0) Definir le seuil des valeurs de charge moyenne du systeme sur 1, 5 ou 15 minutes. Definir l'une d'elles a 0 pour ignorer la charge moyenne correspondante. Voir aussi : options lavg. lavgand booleen(true) Effectuer un ET logique entre les valeurs de charge moyenne du systeme a 1, 5 et 15 minutes. Voir aussi : options lavg, lavgor. lavgonce booleen(1) Une tache peut-elle etre mise plusieurs fois simultanement dans la file d'attente charge moyenne du systeme (Ndt : lavg queue) ? Voir aussi : options lavg. lavgor booleen(false) Effectuer un OU logique entre les valeurs de charge moyenne du systeme a 1, 5 et 15 minutes. Voir aussi : options lavg, lavgand. mail m booleen(true) Envoyer la sortie (s'il y en a) par courriel, ou non. Voir aussi : options mailto, forcemail, nolog. mailto email-address(nom du proprietaire du fichier) Envoyer la sortie (si necessaire) par courriel a << email- address >>. Cela peut etre soit un nom d'utilisateur, soit une adresse courriel complete. Une mailto declaree mais vide (chaine "") est equivalente a << mail(false) >>. Voir aussi : options mail, forcemail, nolog. nice n nice-value Modifier la priorite de la tache. Une nice-value est un entier compris entre -20 (plus forte priorite) et 19 (plus faible priorite). Seul le super-utilisateur est autorise a utiliser une valeur negative pour cette option. nolog booleen(false) Si elle est positionnee a << true >>, journaliser seulement les erreurs des taches correspondantes. Peut etre utile pour des taches lancees tres frequemment, et/ou pour reduire les acces disque sur un ordinateur portable. Voir aussi : options mail, mailto, forcemail. noticenotrun booleen(false) fcron devrait-il prevenir l'utilisateur par courriel de la non execution d'une tache << % >> ou d'une tache << & >> ? (a cause de l'arret du systeme dans les deux cas ou d'une charge moyenne trop elevee dans le second cas). Voir aussi : options lavg, strict. random booleen(false) Dans une ligne lancee periodiquement, cette option repond a la question : << Cette tache devrait-elle etre lancee aussitot que possible dans son intervalle de temps d'execution (plus sur), ou bien fcron doit-il definir une date et heure aleatoire d'execution dans ce meme intervalle de temps ? >>. Veuillez noter que si cette option est positionnee, la tache peut ne pas etre lancee si fcron n'est pas en cours d'execution durant tout l'intervalle d'execution. En outre, sachez qu'il peut etre relativement facile pour une personne competente de deviner l'heure de la prochaine execution d'une tache utilisant l'option random : il est donc preferable de ne pas baser la securite de quelque chose de sensible sur l'alea de cette option. Cependant, cela ne devrait pas poser de probleme pour la plupart de ses utilisations. reset booleen Positionner toutes les options a leur valeur par defaut. runas utilisateur Lancer avec les permissions et l'environnement de << utilisateur >> (seul le super-utilisateur est autorise a utiliser cette option). runfreq r entier Lancer toutes les << runfreq >> correspondances de date et d'heure. (Cette option est ignoree dans le cas d'entrees basees sur le temps ecoule depuis le demarrage du systeme). serial s booleen(false) Fcron fait tourner au plus 1 tache(s) sequentielle(s) en meme temps (c.-a-d. pour lesquelles l'option serial est definie), et autant de taches qui sont a la fois sequentielles et dont l'execution depend aussi de la charge systeme (autrement dit pour lesquelles les options serial et lavg sont definies). Cette valeur peut etre modifiee grace a l'option -m de fcron. Cette option trouve toute son utilite dans le cas de taches lourdes afin d'eviter une surcharge du systeme. Voir aussi : options serialonce, lavg. serialonce booleen(0) Une tache peut-elle etre mise plusieurs fois simultanement dans la file d'attente sequentielle ? (Ndt : serial queue) Voir aussi : options exesev, lavgonce. stdout booleen(false) Si fcron s'execute en arriere plan, permettre la sortie des taches sur stderr/stdout plutot que par courriel ou que l'ignorer. Voir aussi : option --once de fcron(8). strict booleen(true) Lorsqu'une tache << % >> de la file d'attente charge moyenne du systeme (Ndt : lavg queue) est a la fin de l'intervalle de temps d'execution, doit-elle etre retiree de la file d'attente (strict(true), ainsi la tache ne sera pas executee), ou bien doit-elle y rester jusqu'a ce que la charge moyenne du systeme permette son execution (strict(false)) ? Voir aussi : options lavg, noticenotrun. timezone timezone-name(fuseau horaire du systeme) Lancer la tache dans le fuseau horaire fourni. timezone-name est une chaine qui doit etre valide du point de vue de la variable d'environnement TZ : consultez la documentation de votre systeme pour plus de details. Par exemple, << Europe/Paris >> est valide sur un systeme Linux. Cette option gere correctement le changement d'heure. Veuillez noter que si vous fournissez un argument timezone-name errone, celui-ci sera SILENCIEUSEMENT ignore, et la tache sera executee dans le fuseau horaire du systeme. ATTENTION : N'utilisez PAS simultanement les options timezone et tzdiff ! Cela n'a pas de raison d'etre, et timezone est plus maligne que tzdiff. Voir aussi : option tzdiff. tzdiff entier(0) ATTENTION : cette option est obsolete : utilisez plutot l'option timezone ! Difference de fuseau horaire (en heures, valeur comprise entre -24 et 24) entre l'heure du systeme et l'heure locale reelle. Cette option permet a l'utilisateur de definir ses lignes << & >> et << % >> en temps local. Veuillez noter que cette valeur est definie pour l'ensemble du fichier fcrontab, et que seule la derniere declaration est prise en compte. tzdiff est quelque peu stupide : elle ne gere pas le changement d'heure alors que l'option timezone le fait, aussi, vous devriez utiliser cette derniere. Voir aussi : option timezone. until time-value(0) Definir le delai d'attente maximal pour les valeurs de charge systeme. Si le delai est depasse, la tache sera lancee independemment de la charge systeme. Definir until a 0 pour desactiver le delai d'attente. Voir aussi : option lavg. volatile booleen(false) Quand cette option est activee, la tache est basee sur un temps << volatile >>, qu'on pourrait aussi qualifier de << non persistant >>. Plus precisement, fcron ne << retient >> pas le temps ecoule depuis la derniere execution des taches << volatiles >> entre deux demarrages de fcron, et agit comme si les lignes avaient ete fraichement ajoutees a chaque demarrage de fcron. Ainsi, l'option first s'appliquera par exemple pour les lignes << volatiles >> a chaque demarrage de fcron. Cette option est en particulier utile lorsque fcron est lance a partir d'un script qui tourne, par exemple, seulement pendant une connexion a Internet non permanente : l'execution des taches << volatiles >> est alors basee sur le temps depuis le debut de la connexion et le lancement de fcron plutot que sur le temps absolu. Enfin, veuillez noter que cette option s'associe bien a l'option first. Voir aussi : options first, stdout, Entrees basees sur le temps ecoule depuis le demarrage du systeme, l'option --once de fcron dans fcron(8). Un argument de type booleen peut ne pas etre indique, auquel cas les parentheses ne seront pas utilisees et il sera interprete comme etant true ; les chaines << true >>, << yes >> ou << 1 >> signifient true ; et les chaines << false >>, << no >> ou << 0 >> signifient false. Voir plus haut les explications sur les valeurs de temps (section << Entrees basees sur le temps ecoule depuis le demarrage du systeme >>). Veuillez noter que dayand et dayor sont, en fait, la meme option : une valeur << false >> pour dayand est equivalente a une valeur << true >> pour dayor et reciproquement, une valeur << false >> pour dayor est equivalente a une valeur << true >> pour dayand. C'est egalement le cas pour les options lavgand et lavgor. Veuillez noter un cas particulier a gerer : une tache aurait due etre placee dans la file d'attente sequentielle, *mais* la precedente entree de cette tache n'est pas encore achevee a cause d'une forte charge systeme ou d'un quelconque evenement exterieur. L'option serialonce repond a cette question : << La nouvelle entree de cette tache doit- elle etre ignoree ? >>. De cette facon, on peut distinguer d'une part les taches sans contrainte forte sur l'heure d'execution qui doivent etre executees un nombre de fois bien defini (serial(yes), serialonce(false)), et d'autre part les taches toujours sans contrainte forte sur l'heure d'execution mais dont le nombre d'executions n'est pas important ou qu'il est inutile de lancer deux fois d'affilee (serial(true), serialonce(true)), qu'on ne rentrera donc pas une deuxieme fois dans la file sequentielle de facon a eviter de charger le systeme inutilement. Par exemple, << Payer ses employes >> est une tache qui doit etre executee exactement une fois par mois (serialonce(false)), alors que << faire le menage >> doit etre executee de preference une fois par semaine, mais il est inutile de le faire deux fois d'affilee si par hasard on avait pris du retard (serialonce(true)). Les memes considerations s'appliquent pour la file d'attente charge systeme et peuvent etre exprimees par l'option lavgonce. De plus, si les files d'attente sequentielle et charge systeme contiennent respectivement plus de 30 et 30 taches, toute nouvelle tache sera rejetee (et donc non executee) pour eviter une saturation de ressources systeme. Dans ce cas, un message d'erreur sera journalise a travers syslog. Enfin, s'il reste des taches dans les files d'attente sequentielle et charge systeme au moment de l'arret de fcron, celles-ci seront deposees une fois dans leur file correspondante au redemarrage (l'ordre peut ne pas etre conserve). EXEMPLE DE DECLARATION 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 a l'utilisateur thib, # quelque soit le proprietaire de ce fcrontab. !mailto(thib) # definir une variable equivalente a " Salut thib et paul ! " # les caracteres << nouvelle ligne >> sont echappes avec # une barre oblique inverse << \ >> et les guillemets servent # a conserver les espaces de debut et de fin de chaine TEXT= " Salut\ thib et\ paul ! " # on veut utiliser la file d'attente sequentielle mais pas l'option bootrun !serial(true),b(0) # lancer la premiere fois apres 5 minutes de fonctionnement du systeme, # 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 matinee et une fois dans l'apres-midi si le systeme # est en fonctionnement a n'importe quel moment pendant ces intervalles de temps %hours * 8-12,14-18 * * * echo "He patron, je bosse aujourd'hui !" # lancer une fois par semaine a l'heure du dejeuner %weekly * 12-13 echo "J'ai laisse allume mon systeme au moins une fois\ a l'heure du dejeuner cette semaine." # lancer tous les samedi et dimanche a 9:05 5 9 * * sat,sun echo "Bonjour Thibault !" # lancer tous les jours pairs du mois de mars a 18:00, sauf le 16 0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer a la maison !" # la ligne precedente est equivalente a & 0 18 2-30/2~16 Mar * echo "Il est temps de se rentrer a la maison !" # mettre toutes les options a leur valeur par defaut et definir runfreq # pour les lignes qui vont suivre !reset,runfreq(7) # lancer une fois toutes les 7 correspondances (grace a la declaration precedente), # ainsi, si le systeme est en fonctionnement tous les jours a 10 heures, # la commande sera lancee une fois par semaine & 0 10 * * * echo "Si vous avez vu ce message pour la derniere fois il y a 7 jours,\ c'est que cette machine a fonctionne tous les jours a 10 heures durant la derniere semaine.\ Si vous avez eu ce message il y a 8 jours, c'est que cette machine n'a pas fonctionne\ un jour a 10:00 heures depuis le dernier message, etc." # attendre toutes les heures que la charge systeme moyenne sur 5 minutes # soit inferieure a 0.9 @lavg5(0.9) 1h echo "La charge moyenne systeme est faible" # attendre au maximum 5 heures chaque jour une baisse de la charge systeme @lavgand,lavg(1,2.0,3.0),until(5h) 1d echo "La charge systeme vient de diminuer" # attendre le meilleur moment pour lancer une tache lourde @lavgor,lavg(0.8,1.2,1.5),nice(10) 1w echo "C'est une tres lourde tache" # 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 recuperer\ la derniere version de Mozilla !" FICHIERS /usr/local/etc/fcron.conf Fichier de configuration de fcron, fcrontab et fcrondyn : contient les chemins (repertoire spool, fichier pid) et les programmes par defaut a utiliser (editeur, shell, etc.). Voir fcron.conf(5) pour plus de details. /usr/local/etc/fcron.allow Utilisateurs autorises a utiliser fcrontab et fcrondyn (un seul nom par ligne, le nom special << all >> signifiant tout le monde). /usr/local/etc/fcron.deny Utilisateurs qui ne sont pas autorises a utiliser fcrontab et fcrondyn (meme format que le fichier precedent). /usr/local/etc/pam.d/fcron (ou /usr/local/etc/pam.conf) Fichier de configuration PAM pour fcron. Voir pam(8) pour plus de details. VOIR AUSSI fcrontab(1), fcrondyn(1), fcrontab(5), fcron.conf(5), fcron(8). Si vous etes en train d'apprendre a utiliser fcron, je vous suggere plutot de lire la version HTML de la documentation (si ce n'est pas deja ce que vous faites en ce moment ! :) ) : le contenu est le meme, mais il est plus aise de naviguer grace aux hyperliens. AUTEUR Thibault Godouet TRADUCTION Ce document est une traduction realisee par Alain Portal le 6 fevrier 2006. L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite. La version anglaise la plus a jour de ce document est toujours consultable via la commande : << LANG=en man 5 fcrontab >>. N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. 12/05/2021 05 December 2021 FCRONTAB(5)