Bonjour,
J’ai écrit un petit script de sauvegarde unilatéral d’un dédié vers la maison.
Je dois mettre en paramètre le chemin d’un répertoire du dédié, et le script se lance.
Lorsque je mets en paramètre le dossier “/etc”, ça roule.
Lorsque je mets en paramètre le dossier “/home/owncloud”, ça coince.
Voici mon retour de BASH :
root@web:/home/temp/# sh /home/temp/scripts/Script_Sauvegarde_Folder_Skeleton.sh /home/owncloud
Montage du /sauvegarde_dedie/home/owncloud en cours
Sauvegarde de /home/owncloud
on est dans le if
/home/temp/scripts/Script_Sauvegarde_Folder_Skeleton.sh: ligne 68: /home/temp/log/home/owncloud_20151007_15h46.txt: Aucun fichier ou dossier de ce type
RSYNC /home/owncloud: OK
/home/temp/log/home/owncloud_20151007_15h46.txt: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « /home/temp/log/home/owncloud_20151007_15h46.txt »: Aucun fichier ou dossier de ce type
Voici mon script :
[code]#!/bin/bash
#La version actuelle a été finalisée le 30 mai 2015
#Script de sauvegarde d’un dossier pris en paramètre vers le NAS de la maison
Chaque rsync a un log qui lui est propre et qui est envoyé par mail puis supprimé.
##################################### VARIABLES/CONSTANTES ###########################################
#Dossier à sauvegarder pris en paramètre
dossier=$@
#Prise de la date de début de script pour connaître le temps qu’il a fallu pour l’ecécuter
date_debut=date
#Prise de la date du jour pour les fichiers spécifiques de sauvegarde (sql,logs,…)
datedujour=date +%Y%m%d_%Hh%M
#Chemin de la source de la sauvegarde
chemin_source="$dossier"
#Chemin de la destination // NE PAS OUBLIER LE $dossier pour réaliser un point de montage unique.
Créer le dossier à la mano
chemin_dest="/home/temp$dossier"
#Adresse du service distant
serveur_distant="-p 763 maxime@serveur.DOMAINE.fr"
#Répertoire du serveur distant
NE PAS OUBLIER LE / au début du chemin, sinon le point de montage ne supporte pas le rsync
repertoire_distant="/sauvegarde_dedie$dossier"
#Chemin log
chemin_log="/home/temp/log"
date_acte=date +%Y%m%d_%Hh%M
extension_fichier="$@_$date_acte"
log="$chemin_log$extension_fichier.txt"
#touch $log
#################################### VERIFICATION DU PAMARMETRE SAISI ##############################
if [ “$dossier” = “” ]
then
echo "Vous avez oublié de saisir un paramètre, veuillez relancer le script"
exit
fi
####################################### MONTAGE NAS ######################################
if [ $(mount | grep “$repertoire_distant” | wc -l) == 1 ]
then
echo "Montage du $repertoire_distant déjà fait"
else
echo "Montage du $repertoire_distant en cours"
sshfs $serveur_distant:$repertoire_distant $chemin_dest
#Si le montage est effectif, alors faire la synchro, sinon passer à la suite
if [ $(mount | grep "$repertoire_distant" | wc -l) == 1 ]
then
echo "Sauvegarde de $dossier"
#date pour le log
date_acte=`date +%Y%m%d_%Hh%M`
extension_fichier="$service_LOG_$date_acte"
if [ $dossier == "/etc" ]
echo "on est dans le if"
then rsync -av --delete --omit-dir-times $chemin_source/ $chemin_dest/ > $log
else rsync -av --delete $chemin_source/ $chemin_dest/ > $log
fi
echo "RSYNC $dossier: OK"
umount $chemin_dest
date_fin=`date`
echo "Franc succès de la sauvegarde de $dossier commencée le : "$date_debut" et terminée le : "$date_fin | mail -s "RSYNC $dossier OK" -a $log maxime@DOMAINE.fr
rm $log
else
echo "La synchro de $dossier impossible le $date_acte" | mail -s "Echec de la Synchro $dossier" maxime@mDOMAINE.fr
fi
fi
[/code]
Une idée de la source du problème ?
Merci pour votre lecture.
P.S : Le terme “on est dans le if” n’est pas censé apparaître puisque je ne suis pas avec le répertoire “/etc” mais “/home/owncloud” la condition ne fonctionne donc pas… Mais pourquoi ?