User Tools

Site Tools


informatique:linux:cron

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:linux:cron [2016/03/08 14:47] pteuinformatique:linux:cron [2016/12/18 14:35] (current) – [Tips] Utilisation du "%" pteu
Line 24: Line 24:
   * echap puis **:q!** pour quitter sans sauvegarder   * echap puis **:q!** pour quitter sans sauvegarder
  
-La syntaxe du fichier est la suivante : ''# m h  dom mon dow   command'' qui signifit respectivement **m**inute, **h**our, **d**ay **o**f **m**onth, **mon**th, **d**ay **o**f **w**eek, et commande (il faut au moins un espace ou une tab entre chaque colonne). Les intervalles sont naturels, sauf pour la colonne **dow** qui va de 0 (dimanche) à (samedi).+La syntaxe du fichier est la suivante : ''# m h  dom mon dow   command'' qui signifie respectivement **m**inute, **h**our, **d**ay **o**f **m**onth, **mon**th, **d**ay **o**f **w**eek, et commande (il faut au moins un espace ou une tab entre chaque colonne). Les intervalles sont naturels, sauf pour la colonne **dow** qui va de 0 (dimanche) à (samedi). 7 vaut également dimanche, pour des problèmes de compatibilité.
  
 Il existe des méta-caractères : Il existe des méta-caractères :
Line 39: Line 39:
  
 On obtient une confirmation de la prise en compte de la modification : On obtient une confirmation de la prise en compte de la modification :
-  crontab: installing new crontab+<code bash> 
 +crontab: installing new crontab 
 +</code>
  
 Voici des exemples (toujours 1 ligne par commande). Voici des exemples (toujours 1 ligne par commande).
Line 73: Line 75:
   * ''@hourly'' : execution une fois par heure, "0 * * * *"   * ''@hourly'' : execution une fois par heure, "0 * * * *"
  
-Le root peut (et doit même) utiliser le répertoire ''/etc/cron.*'' afin de centraliser toutes les commandes en crontab (sinon disséminées dans des fichiers obscurs). La syntaxe est la même qu'une crontab éditée avec ''crontab -e'', à ceci près qu'on ajoute un champ //user// avant la commande pour préciser l'identité sous laquelle sera lancée la commandepar exemple pour lancer sous l'identité de "dude" :+Le root peut (et doit même) utiliser le répertoire ''/etc/cron.*'' afin de centraliser toutes les commandes en crontab (sinon disséminées dans des fichiers obscurs). La syntaxe est la même qu'une crontab éditée avec ''crontab -e'', à ceci près qu'on ajoute un champ //user// avant la commandepour préciser l'identité sous laquelle sera lancée la commande par exemple pour lancer sous l'identité de "dude" :
 <code bash> <code bash>
 */10 * * * * dude echo "pwet" */10 * * * * dude echo "pwet"
 +</code>
 +
 +
 +=====Tips=====
 +
 +====Utilisation du "%"====
 +
 +Lorsqu'on utilise une commande contenant des ''%'' dans une crontab, comme la commande ''date'' par exemple :
 +<code bash>
 +01 00 * * *     root echo "Bonjour, nous sommes le `date +%Y-%m-%d`" >> /root/horloge_parlante.log
 +</code>
 +... elle génère inévitablement un message d'erreur du style :
 +> /bin/sh: -c: ligne 0: caractère de fin de fichier (EOF) prématuré lors de la recherche du « ` » correspondant
 +
 +Le problème vient du fait que le caractère ''%'' est interprété par cron comme un saut de ligne. Pour utiliser ce caractère dans une crontab, il faut le protéger en le précédant d'un ''\'' :
 +<code bash>
 +01 00 * * *     root echo "Bonjour, nous sommes le `date +\%Y-\%m-\%d`" >> /root/horloge_parlante.log
 </code> </code>
informatique/linux/cron.txt · Last modified: 2016/12/18 14:35 by pteu