Both sides previous revisionPrevious revisionNext revision | Previous revision |
informatique:linux:cron [2016/03/08 14:47] – pteu | informatique:linux:cron [2016/12/18 14:35] (current) – [Tips] Utilisation du "%" pteu |
---|
* 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) à 7 (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) à 6 (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 : |
| |
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). |
* ''@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 commande, par 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 commande, pour 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> |