échappement

This commit is contained in:
jlecour 2021-10-31 09:05:03 +01:00
parent 769744c602
commit eeb0285ae9

View file

@ -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.
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
~~~