Table des matières

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 : 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 : 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