====== La commande "crontab" ======
La page de [[man de crontab]].
===== Variables d'environnement =====
Crontab charge un environnement minimal et différent de celui de //root//! Ça veut dire qu'il n'initialise pas un $PATH complet.
Il vaut donc mieux mettre le chemin complet vers le programme qu'on veut lancer (qu'on peut trouver avec [[whereis]]) :
# whereis certbot
certbot: /usr/local/bin/certbot
On peut voir quel sont les variables d'environnement déclarées par crontab en rajoutant cette ligne :
* * * * * env > /tmp/cronenv
Résultat :
$ cat /tmp/cronenv
LANGUAGE=fr_BE:fr
HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
LANG=fr_BE.UTF-8
SHELL=/bin/sh
PWD=/root
Source : [[http://sametmax.com/variable-denvironnement-path-et-crontab/|sametmax.com]]
===== Activer un log spécifique =====
Il faut dé-commenter une ligne
# vim /etc/rsyslog.conf
(...)
cron.* /var/log/cron.log
(...)
Sur Ubuntu, le fichier à modifier est dans un sous-dossier : ''/etc/rsyslog.d/50-default.conf''
On relance ensuite le service :
# service rsyslog restart
Source : [[https://www.p3ter.fr/activer-le-log-de-cron.html|p3ter.fr]]
===== Utilisation de la commande "date" dans crontab =====
Pour utiliser la commande [[date]] dans crontab, il faut faire attention à échapper les "%" en mettant un backslash devant :
00 5 * * * cp /home/simon/mon/fichier.txt /dossier/de/backup/$(date '+\%Y-\%m-\%d')-mon-fichier.txt