Provided by: manpages-fr-extra_20070512_all bug
 

NOM

        crontab - Tables permettant de gérer le démon cron
 

DESCRIPTION

        Un fichier crontab contient des instructions pour le démon cron(8). Ces
        instructions ont la forme générale suivante : « lancer cette commande à
        telle  heure, tel jour ». Chaque utilisateur dispose de sa propre table
        crontab, et les commandes contenues dans  une  table  seront  exécutées
        sous l’identifiant du propriétaire de la table. Les pseudo-utilisateurs
        Uucp et News disposent généralement de leurs propres crontabs,  ce  qui
        évite d’invoquer explicitement su(1) dans une commande cron.
 
        Les lignes blanches, les espaces et tabulations en début de lignes sont
        ignorées. Les lignes dont le premier caractère non blanc est  un  dièse
        (#)   sont  considérées  comme  des  commentaires,  et  sont  également
        ignorées. Notez que les commentaires ne peuvent pas se trouver  sur  la
        même  ligne qu’une commande cron, car ils seraient considérés comme des
        paramètres de la commande à invoquer. De même, un commentaire  ne  peut
        pas se trouver sur la même ligne qu’une affectation de variable d’envi‐
        ronnement.
 
        Une ligne active dans une crontab devra donc être soit une  affectation
        de variable d’environnement, soit une commande cron. Une ligne d’affec‐
        tation d’environnement est de la forme :
 
            nom = valeur
 
        où les espaces autour du signe égal (=) sont facultatives, et  où  tous
        les  espaces  ultérieures  dans  valeur  feront partie intégrante de la
        valeur affectée à la variable  nom.  La  chaîne  de  valeur  peut  être
        inscrite  entre  guillemets  simples  ou  doubles  afin de protéger les
        blancs initiaux et finaux. La chaîne valeur ne supporte pas les substi‐
        tutions environnementales, ainsi une ligne comme
 
            PATH = $HOME/bin:$PATH
 
        ne fonctionnera pas comme attendu.
 
        Plusieurs  variables  d’environnement sont automatiquement définies par
        le démon cron(8). SHELL prend la valeur /bin/sh, LOGNAME et  HOME  sont
        définies  à  partir  de  la  ligne de /etc/passwd correspondant au pro‐
        priétaire de la crontab. PATH est définie  à  « /usr/bin:/bin ».  HOME,
        SHELL  et  PATH  peuvent être réaffectées explicitement dans la crontab
        contrairement à LOGNAME, qui est l’utilisateur ayant lancé la tâche.
 
        (Note : la variable LOGNAME est parfois nommée USER  sur  les  systèmes
        BSD. Sur ces systèmes, USER doit aussi être définie.)
 
        En  plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la vari‐
        able MAILTO s’il doit  envoyer  le  résultat  d’une  commande  exécutée
        depuis  « cette »  crontab.  Si  MAILTO  est  définie (et non vide), le
        résultat est envoyé à l’utilisateur indiqué. Si MAILTO est définie mais
        vide  (MAILTO=""),  aucun  courriel  ne sera envoyé. Sinon, le courriel
        sera envoyé au propriétaire de la crontab.
 
        Sur les systèmes Debian GNU/Linux,  cron  gère  le  module  pam_env  et
        charge    l’environnement   spécifié   dans   le   fichier   /etc/secu‐
        rity/pam_env.conf. Toutefois les réglages de PAM  n’affectent  pas  les
        réglages décrits 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  défaut,  cron  envoie  le  courrier  en  utilisant l’en-tête "Con‐
        tent-type" de "text/plain" avec comme valeur  du  paramètre  "charset="
        l’encodage  utilisé  par  crond(8) à son lancement, i.e. soit la locale
        par défaut du système si aucune  variable  d’environnement  LC_*  n’est
        attribuée,  soit  la  locale  spécifiée  par  ces  variables LC_* (voir
        locale(7)). Vous pouvez utiliser un autre codage de caractères pour les
        messages envoyés par cron en positionnant les variables CONTENT_TYPE et
        CONTENT_TRANSFER_ENCODING dans vos crontabs aux valeurs souhaitées  des
        en-têtes de message correspondants.
 
        Le  format  d’une  commande  cron  est très proche du standard V7, avec
        quelques options permettant de  garder  une  compatibilité  ascendante.
        Chaque  ligne dispose de 5 champs de date et d’heure, suivis d’une com‐
        mande et enfin d’un retour à la  ligne  (« \n »).  Le  système  crontab
        (/etc/crontab)  utilise  le même format, si ce n’est que le champ util‐
        isateur est indiqué après les champs de date et d’heure mais  avant  la
        commande.  Les champs peuvent être séparés par des espaces ou des tabu‐
        lations.
 
        Les commandes sont exécutées par cron(8)  lorsque  les  champs  minute,
        heure et mois de l’année correspondent à 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 entrées cron chaque minute. Les champs d’heure et de date sont :
 
               champ           valeurs autorisées
               -----           --------------
               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 astérisque « * », qui correspond à l’inter‐
        valle « premier-dernier ».
 
        Les intervalles de nombres sont permis. Ils se présentent sous forme de
        deux  nombres  séparés  par un trait d’union. Les bornes sont incluses.
        Par exemple, l’intervalle horaire 8-11 correspond à une  exécution  aux
        heures 8, 9, 10, et 11.
 
        Les  listes  sont  permises.  Une  liste  est un ensemble de nombres ou
        d’intervalles  séparés   par   des   virgules.   Exemple   « 1,2,5,9 »,
        « 0-4,8-12 ».
 
        Des  valeurs  de  « pas »  peuvent être associées aux intervalles. À la
        suite d’un intervalle, un « /<nombre> » précise le pas à  adopter  pour
        parcourir  l’intervalle.  Par  exemple « 0-23/2 » dans le champ horaire
        demande une exécution toutes les heures paires. Une alternative avec le
        standard  V7  serait  « 0,2,4,6,8,10,12,14,16,18,20,22 »). Les pas sont
        également autorisés à  la  suite  d’un  astérisque.  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 premières lettres (pas  de  différence
        majuscule/minuscule). Les intervalles ou les listes de noms ne sont pas
        acceptés.
 
        Le sixième champ (le reste de la ligne) indique la commande à exécuter.
        Tout  le  reste de la ligne, jusqu’au retour chariot ou au caractère %,
        sera exécuté par /bin/sh, ou par le shell mentionné  dans  la  variable
        SHELL  du  fichier  cron.  Les  signes  pourcent (%) dans les commandes
        seront transformés en retour-chariot, sauf s’ils sont  précédé  par  un
        backslash  \.  Toutes  les  données se trouvant à la suite du premier %
        seront transmises à la commande sur son entrée standard. Il  n’est  pas
        possible d’écrire une commande sur plusieurs lignes, comme on le ferait
        dans un shell avec le \ final.
 
        Note : le jour d’exécution d’une commande peut être spécifié  par  deux
        champs  (jour  du mois, et jour de la semaine). Si les deux champs sont
        remplis (c.-à-d. différents de « * »), la commande  sera  lancée  quand
        l’un des champs au moins correspond à la date en cours. Par exemple
        « 30  4  1,15 * 5 » exécutera une commande à 4 h 30 du matin les 1er et
        15 de chaque mois, ainsi que chaque vendredi.
 
        À la place des cinq premiers champs  peut  apparaître  l’une  des  huit
        chaînes spéciales :
 
               chaîne         signification
               ------         -------
               @reboot        Exécuter une fois au démarrage.
               @yearly        Exécuter une fois par an, « 0 0 1 1 * ».
               @annually      (idem que @yearly)
               @monthly       Exécuter une fois par mois, « 0 0 1 * * ».
               @weekly        Exécuter une fois par semaine, « 0 0 * * 0 ».
               @daily         Exécuter une fois par jour, « 0 0 * * * ».
               @midnight      (idem que @daily)
               @hourly        Exécuter une fois par heure, « 0 * * * * ».
        # Utiliser /bin/bash pour lancer les commandes, plutôt que le shell par
        # défaut /bin/sh
        SHELL=/bin/bash
        # Envoyer les résultats à Paul, sans tenir compte du propriétaire
        MAILTO=paul
        #
        # Exécuter chaque jour, 5 minutes après minuit
        5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
        # Exécuter le premier de chaque mois à 14 h 15 - Résultat envoyé à Paul
        15 14 1 * *     $HOME/bin/monthly
        # Énerver Joe du lundi au vendredi à 22 h
        0 22 * * 1-5   mail -s "Il est 22 h" joe%Joe,%%Où sont tes enfants ?%
        23 0-23/2 * * * echo "Tous les jours, 23 mn après 0 h, 2 h, 4 h..."
        5 4 * * sun     echo "Tous les dimanches à 4 h 05"
        Le  champ utilisateur est présent, il est utilisé comme dans le fichier
        /etc/crontab.
        # /etc/crontab: crontab du système
        # A la différence des autres crontabs, vous n’avez pas besoin d’exécuter
        # la commande crontab pour installer la nouvelle version quand vous
        # modifiez ce fichier. Ce fichier possède 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 géré par
        # un fichier dans /etc/cron.d
        cron(8), crontab(1)
 

EXTENSIONS

        Dans la désignation du jour de la semaine, le 0 et le  7  correspondent
        tous  deux  au  dimanche.  BSD  et ATT ne sont pas entièrement d’accord
        là-dessus.
 
        On  autorise  les  intervalles  et  les  listes  dans  le  même  champ.
        « 1-3,7-9 »  sera  rejeté  par  le cron ATT ou BSD, ils n’acceptent que
        « 1-3 » ou « 7,8,9 ».
 
        Les intervalles peuvent inclure des « pas », ainsi « 1-9/2 » équivaut à
        « 1,3,5,7,9 ».
 
        Le nom des mois ou des jours de la semaine peut être utilisé.
 
        Les  variables  d’environnement  peuvent être définies dans la crontab.
        Avec BSD ou ATT, l’environnement transmis aux processus fils est  glob‐
        alement celui de /etc/rc.
 
        La  sortie des commandes est soit envoyée au propriétaire de la crontab
        (pas sous BSD), soit dirigée vers une autre personne (pas  sous  SysV),
        soit  la  redirection  est  désactivée et aucun courriel ne sera envoyé
        (pas sous SysV non plus).
 
        Toutes les commandes « @ » qui peuvent apparaître dans  l’un  des  cinq
        premiers champs sont des extensions.
 

AUTEUR

        Paul Vixie <paul@vix.com>
 

TRADUCTION

        Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
        Blaess entre 1997  et  2003.   La  version  présente  dans  Debian  est
        dorénavant 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.