Loading

NOM

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

       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’environnement.

       Une ligne active dans une crontab devra donc être soit une  affectation
       de   variable  d’environnement,  soit  une  commande  cron.  Une  ligne
       d’affectation 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
       substitutions 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
       proprié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
       variable 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é. MAILTO peut aussi servir à
       envoyer  les  courriers  à  plusieurs  destinataires  en  séparant  les
       destinataires  par  une  virgule.  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  les  variables d’environnement des fichiers /etc/environment et
       /etc/security/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
       "Content-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
       commande  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
       utilisateur  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
       tabulations.

       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’intervalle « 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
       lun 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 * * * * ».

EXEMPLE DE FICHIER CRONTAB

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

EXEMPLE DE FICHIER SYSTÈME CRON

       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

VOIR AUSSI

       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 AT&T 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 AT&T 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  AT&T,  l’environnement  transmis  aux processus fils est
       globalement 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.