écriture de fichier log par script lancé par cron

Bonjour,

J’ai créé un script de sauvegarde d’un serveur debian que j’administre à distance.
Le script écrit les données dans le fichier sauv.log.

Mon script est :

#!/bin/bash
mv /media/sauvegarde/archives/j-9/* /media/sauvegarde/archives/archives/
rmdir /media/sauvegarde/archives/j-9
mv /media/sauvegarde/archives/j-8/ /media/sauvegarde/archives/j-9/
mv /media/sauvegarde/archives/j-7/ /media/sauvegarde/archives/j-8/
mv /media/sauvegarde/archives/j-6/ /media/sauvegarde/archives/j-7/
mv /media/sauvegarde/archives/j-5/ /media/sauvegarde/archives/j-6/
mv /media/sauvegarde/archives/j-4/ /media/sauvegarde/archives/j-5/
mv /media/sauvegarde/archives/j-3/ /media/sauvegarde/archives/j-4/
mv /media/sauvegarde/archives/j-2/ /media/sauvegarde/archives/j-3/
mv /media/sauvegarde/archives/j-1/ /media/sauvegarde/archives/j-2/
mv /media/sauvegarde/deleted/ /media/sauvegarde/archives/j-1/
echo >> /home/phr/script/sauv.log
echo >> /home/phr/script/sauv.log
echo >> /home/phr/script/sauv.log
echo "****************************************************************" >> /home/phr/script/sauv.log
echo "resultat de sauvegarde automatisee rsync-Haurov du " >> /home/phr/script/sauv.log
date >> sauv.log
echo >> /home/phr/script/sauv.log
echo "***************************" >> /home/phr/script/sauv.log
echo "/etc/" >> /home/phr/script/sauv.log
echo "*****" >> /home/phr/script/sauv.log
rsync -Haurov --stats --delete --backup --backup-dir=/media/sauvegarde/deleted/ /etc/ /media/sauvegarde/etc/ >> sauv.log
echo >> /home/phr/script/sauv.log
echo "***************************" >> /home/phr/script/sauv.log
echo "/home/" >> /home/phr/script/sauv.log
echo "******" >> /home/phr/script/sauv.log
rsync -Haurov --stats --delete --backup --backup-dir=/media/sauvegarde/deleted/ /home/ /media/sauvegarde/home/ >> sauv.log
echo >> /home/phr/script/sauv.log
echo "***************************" >> /home/phr/script/sauv.log
echo "/usr/" >> /home/phr/script/sauv.log
echo "*****" >> /home/phr/script/sauv.log
rsync -Haurov --stats --delete --backup --backup-dir=/media/sauvegarde/deleted/ /usr/ /media/sauvegarde/usr/ >> sauv.log
echo >> /home/phr/script/sauv.log
echo "***************************" >> /home/phr/script/sauv.log
echo "/var/" >> /home/phr/script/sauv.log
echo "*****" >> /home/phr/script/sauv.log
rsync -Haurov --stats --delete --backup --backup-dir=/media/sauvegarde/deleted/ /var/ /media/sauvegarde/var/ >> sauv.log

Tout fonctionne bien quand je lance le script manuellement :
Les titres de sauvegarde echo et les fichiers déplacés sont bien listés dans sauv.log
Mais lorsque c’est le cron qui lance le script à 2h00 du mat, seules les titres echo sont enregistrées dans le log. J’ai vérifié manuellement que les fichiers sont bien sauvegardés, c’est OK.

Ma crontab est :

MAILTO=moi@mondomaine
# m h  dom mon dow   command
0 1 * * * sh /home/phr/script/sauv.sh
0 2 * * * apt-get update

Si c’est important, je précise que la distribution est 2.6.26-2-amd64 #1 SMP Thu Sep 16 15:56:38 UTC 2010 x86_64 GNU/Linux.

Merci si vous pouvez me renseigner car j’ai cherché dans plusieurs tutos et forums et … je n’arrive pas à expliquer pourquoi seule la moitié de mon log s’écrit :s

[quote=“philou3333”]
Mais lorsque c’est le cron qui lance le script à 2h00 du mat, seules les titres echo sont enregistrées dans le log.[/quote]
Pourquoi dans le script, n’indiques-tu pas le chemin complet du fichier sauv.log, comme tu le fais pour les echo ?
rsync >> /home/phr/script/sauv.log

Ça fonctionne manuellement, car lances le script à partir du bon répertoire, mais avec cron ça doit être différent. Ça ne m’étonnerait pas que tu aies un autre fichier sauv.log contenant précisément ce qu’il te manque (à la racine ?).

ARG !!! mais oui ; c’est bien sûr ça ! ; Maintenant ça me parait évident mais je cherchais complètement ailleurs ; désolé ma question devient bien bête :wink:
ça va marcher mieux maintenant :smiley:
Merci pour ta réponse.
Et je relirai 4 fois mes scripts la prochaine fois :smiley: