Dans mon article Sauvegarde avec rSnapshot, configuration complète, je donne mon script de sauvegarde qui est plannifié par Cron tous les jours.


Ce dernier déclenche la sauvegarde journalière, puis test si on est un lundi afin de déclencher la sauvegarde hebdomadaire.


Or depuis que ce script est en place la sauvegarde hebdomadaire ne s’est jamais déclenché.


Pour réaliser ce test le script exécute la ligne suivante :

if [ $(date +%A) == "lundi" ]; then


Et si j’affiche la valeur de la commande date dans un terminal :

echo $(date +%A)


Cela me donne bien lundi (si on est un lundi évidemment)


J’ai donc suspecté un problème de paramètres régionaux (locale) différents lorsque  l’on est dans une tache de lorsque l’on est dans le terminal.


Pour m’en assurer j’ai donc planifié une tache cron quelques minutes dans le futur, qui flush les variables d’environnement dans un fichier :


20 23 * * *  env >> /home/mon_user/testCron.txt


Et le résultat est le suivant :

HOME=/home/mon_user
 
XDG_SESSION_COOKIE=0ac36ac860b1eaba6c5713094aa20f7e-1264544401.519200-1577344836
 
MAILTO=
 
LOGNAME=mon_user
 
PATH=/usr/bin:/bin
 
SHELL=/bin/sh
 
PWD=/home/mon_user


Par défaut lors de l’exécution d’une tache Cron, il n’y a pas de locale de défini, on prend donc la langue par défaut = anglais


Pour résoudre le problème il suffit donc d’ajouter dans la crontab (ou directment dans le script) la ligne suivante :


LANG=fr_FR.UTF-8



Sources :

Photo par image_smith sous CC by-nc-nd


Les commentaires sont fermés.