Bonjour,
j'ai un petit probleme de syntaxe pour mon script dans la phase de suppression...
c'est un petit script mais avec pas mal de commande
#!/bin/bash
################################################################################
################################################################################
# Script de sauvegarde des home
# Nom du fichier : denis_home_backup.sh
# Version 2008.01.08
# Auteur Ikwatuve
#
# Description :
# - sauvegarde de 5 jours en arriere
# - archive par semaine sur 4 semaines
# - archive par mois
#
# cp du jour precedent, puis rsync dessus
#
# (pour compte rendu par mail)
# -doit donner dans un fichier, heure debut et heure fin (20h00 21h00)
# -dans un autre fichier la sortie des erreurs
################################################################################
################################################################################
################################################################################
# Definition des variables
################################################################################
# fichier de log
LOG=/var/log/denis_home_backup.log
# fichier de rapport
RAPPORT=/var/log/rapport.txt
# date d'hier qui sera calculee par le script
HIER=""
# date du jour
JOUR=`date +%Y%m%d`
# serveur distant sur lequel faire la sauvegarde
SVG=***@svg01
# dossier source sur la machine locale a sauvegarder
SRCDIR=/home/*
# dossier destination de la sauvegarde sur $SRV
DESTDIR=/mnt/disque01/users/
# dossier archive des sauvegardes de la semaine en cours sur $SRV
DAYDIR=/mnt/disque02/archive/users/
# dossier archive des sauvegardes des semaines passees sur $SRV
WEEKDIR=/mnt/disque02/archive/users/semaines/
# dossier archive des sauvegardes des mois passes sur $SRV
MONTHDIR=/mnt/disque02/archive/users/mois/
# fin de la definition des variables
set -u
################################################################################
# Definition des fonctions du script (pour appel des fonctions pas encore fait)
################################################################################
# fonction pour arret critique du script (pas encore fait)
################################################################################
################################################################################
################################################################################
# MAIN
################################################################################
################################################################################
################################################################################
# Verification des parametres pour le bon deroulement du script
################################################################################
# exists
#creer
if [ ! -e $LOG ]; then
echo "creation du fichier $LOG";
touch $LOG;
fi
# verification des droits sur $LOG
# le log va etre diriger vers le mail du CRON
if [ ! -w $LOG ]; then
echo "ERREUR ouverture pour ecriture du fichier $LOG";
exit 1;
fi
if [ ! -e $RAPPORT ]; then
echo "creation du fichier $RAPPORT";
touch $RAPPORT;
fi
# verification des droits sur $RAPPORT
if [ ! -w $RAPPORT ]; then
echo "ERREUR ouverture pour ecriture du fichier $RAPPORT";
exit 1;
fi
################################################################################
# Debut du traitement
################################################################################
# afficher heure de debut
echo "start :" `date +%Y%m%d-%H:%M:%S` >> $LOG
# definition de la date $HIER
if(( `date +%u` == 5 )); then
# on est vendredi
HIER=`date +%Y%m%d --date="-3day"`;
else
# on n'est pas vendredi
HIER=`date +%Y%m%d --date="-1day"`;
fi
# on archive la sauvegarde de $HIER
ssh $SVG "cp -r $DESTDIR/$HIER $DAYDIR/" 2>> $LOG
# test du retour de la commande
# (APPELER UNE FONCTION)
if(( $? != 0 )); then
echo "ERREUR sur cp de $HIER";
exit 1;
fi
# si on est vendredi on effectue la sauvegarde hebdomadaire dans $WEEKDIR
if((`date +%u` == 5 )); then
ssh $SVG "cp -r $DAYDIR/`date +%Y%m%d --date="-7day"` $WEEKDIR/" 2>> $LOG;
fi
# test du retour de la commande
# (APPELER UNE FONCTION)
if(( $? != 0 )); then
echo "ERREUR sur cp dans $WEEKDIR";
exit 1;
fi
# si $HIER et $JOUR changent de mois, on effectue la sauvegarde mensuelle
if [ ${HIER:0:6} != ${JOUR:0:6} ]; then
ssh $SVG "cp -r $DESTDIR/$HIER $MONTHDIR/" 2>> $LOG;
fi
# test du retour de la commande
# (APPELER UNE FONCTION)
if(( $? != 0 )); then
echo "ERREUR sur cp dans MONTHDIR";
exit 1;
fi
# on renomme la sauvegarde de $HIER pour aujourd'hui
ssh $SVG "mv $DESTDIR/$HIER $DESTDIR/$JOUR" 2>> $LOG
# test du retour de la commande
if(( $? != 0 )); then
echo "ERREUR sur mv de $HIER vers $JOUR";
exit 1;
fi
################################################################################
#Synchronisation des dossiers
################################################################################
# on synchronise la sauvegarde d'aujourd'hui
rsync -a $SRCDIR $SVG:$DESTDIR/$JOUR 2>> $LOG
# test du retour de la commande
if(( $? != 0 )); then
echo "ERREUR de synchro de $JOUR";
exit 1;
fi
################################################################################
#Suppression des dossiers
################################################################################
# on supprime la sauvegarde du meme jour mais de la semaine precedente
if [ `ssh ***@svg01 "if [ -e $DAYDIR/\`date +%Y%m%d --date=\"-7day\"\` ]; then echo OK; else echo NO; fi"` == "OK" ]; then
ssh $SVG "rm -r $DAYDIR/`date +%Y%m%d --date=\"-7day\"`" 2>> $LOG
else
fi
# test du retour de la commande
if(( $? != 0 )); then
echo "ERREUR suppression de $DAYDIR/`date +%Y%m%d --date=\"-7day\"`";
exit 1;
fi
# si on est vendredi on efface la sauvegarde de vendredi il y a 4 semaines
if ((`date +%u` == 5 && -e )); then
ssh $SVG "rm -r $WEEKDIR/`date +%Y%m%d --date=\"-4week\"`" 2>> $LOG
fi;
# test du retour de la commande
if(( $? != 0 )); then
echo "ERREUR suppression de WEEK -4";
exit 1;
fi
# afficher heure de fin
echo "finished :" `date +%Y%m%d-%H:%M:%S` >> $LOG
Configuration: Linux Debian
Mozilla 1.8.1.3