diff --git a/HowtoCron.md b/HowtoCron.md index 6958db85..5ba8299a 100644 --- a/HowtoCron.md +++ b/HowtoCron.md @@ -79,7 +79,7 @@ Pour lancer une commande à une fréquence personnalisée, la syntaxe est : minutes heures jours mois jour/semaine commande ~~~ -On peut utiliser `*` pour toutes les occurences (tous les jours, ou toutes les heures, etc.). On peut également utiliser des listes à virgule (`3,5,7`) ainsi des intervalles (`2-6`) ; on peut aussi avoir des intervalles réguliers (`*/15`). +On peut utiliser `*` pour toutes les occurrences (tous les jours, ou toutes les heures, etc.). On peut également utiliser des listes à virgule (`3,5,7`) ainsi des intervalles (`2-6`) ; on peut aussi avoir des intervalles réguliers (`*/15`). Exemples de crontab : @@ -159,4 +159,20 @@ Si vous ajoutez une ligne de cron dans `/etc/crontab` elle sera exécutée en _r ### Changement d'heure -En France, lors d'un changement d'heure d'été ou d'hiver, on peut imaginer qu'un script lancé entre 2h et 3h du matin se lancera deux fois ou zéro fois selon les cas. Mais sous Debian, lorsque *cron* détecte un saut important dans l'heure locale, il va prévenir ce comportement en lançant les crons qu'une seule fois (passage à l'heure d'hiver) ou juste après le changement d'heure (passage à l'heure d'été). Par précaution, nous évitons tout de même de mettre des crons entre 2h et 3h du matin. \ No newline at end of file +En France, lors d'un changement d'heure d'été ou d'hiver, on peut imaginer qu'un script lancé entre 2h et 3h du matin se lancera deux fois ou zéro fois selon les cas. Mais sous Debian, lorsque *cron* détecte un saut important dans l'heure locale, il va prévenir ce comportement en lançant les crons qu'une seule fois (passage à l'heure d'hiver) ou juste après le changement d'heure (passage à l'heure d'été). Par précaution, nous évitons tout de même de mettre des crons entre 2h et 3h du matin. + +### Échappement de caractères + +Prenons l'exemple d'une copie horodatée de /etc chaque heure : + +~~~ +@hourly root tar -cf /home/backup/etc-$(date +%H).tar /etc +~~~ + +Celle-ci **ne s'exécutera pas**. En effet, le caractère `%` est interprété comme un saut de ligne et votre commande sera incomplète, et dans ce cas non fonctionnelle. + +Il faut alors simplement **échapper** le `%` avec un `\` : + +~~~ +@hourly root tar -cf /home/backup/etc-$(date +\%H).tar /etc +~~~ \ No newline at end of file