Outils personnels

Rdiff-backup : Différence entre versions

De wikiGite

Ligne 52 : Ligne 52 :
 
-----------------
 
-----------------
 
Exemple de script rdbackup.sh
 
Exemple de script rdbackup.sh
 +
#!/bin/bash
 +
# Script de sauvegarde des serveurs (RDIFF sur SSH)
 +
# FSo 06/2010
 +
# v1.0 from sbackup.sh (RSYNC) v2
 +
# Changelog :
 +
# - Moving variables in a .conf file
 +
#  Variables :
 +
#SERVERNAME=$1
 +
#SERVERIP=$2
 +
#SERVERPORT=$3
 +
#SERVERUSR=$4
 +
#RETENTION="--remove-older-than $5"
 +
#LIST=$6
 +
#EXCLUDE=$7
 +
#BCK_DEV=/home
 +
#BCK_DIR=$BCK_DEV/backup/$SERVERNAME
 +
#RDIFF_OPTS="-v5 --force"
 +
 +
. /home/sites/phototheque.odyssea.local/rdbackup.conf
 +
 +
# Fix variables
 +
LOG_FILE=rdiff_ephoto.log
 +
STAT_FILE=rdiff_ephoto.stats
 +
PID_FILE=rdiff_ephoto.pid
 +
 +
while read line
 +
do
 +
    REMOTE_DIR="$REMOTE_DIR $line"
 +
    shift
 +
done < $LIST
 +
 +
if [ ! -e $BCK_DIR/$PID_FILE ]
 +
then
 +
    echo $$ > $BCK_DIR/$PID_FILE
 +
    /usr/bin/logger "Sauvegarde rdiff $SERVERNAME"
 +
    if [ -e  $BCK_DIR/$LOG_FILE ]
 +
    then
 +
        mv $BCK_DIR/$LOG_FILE $BCK_DIR/$LOG_FILE.0
 +
    fi
 +
    if [ -e  $BCK_DIR/$STAT_FILE ]
 +
    then
 +
        mv $BCK_DIR/$STAT_FILE $BCK_DIR/$STAT_FILE.0
 +
    fi
 +
    echo "Sauvegarde rdiff $SERVERNAME" > $BCK_DIR/$LOG_FILE
 +
    #Boucle de backup
 +
    ERROR_FLAG=0
 +
    ERROR=0
 +
    ERRORS="ERREURS: "
 +
    for rdir in $(echo $REMOTE_DIR)
 +
    do
 +
      if [ ! -d ${BCK_DIR}${rdir} ]
 +
      then
 +
          mkdir -p ${BCK_DIR}${rdir}
 +
      fi
 +
 +
      if [ ! "x$EXCLUDE" == "x" ]
 +
      then
 +
          EXCLUDE_OPT=""
 +
          while read line
 +
          do
 +
            if  [[ $line =~ ^$rdir ]]
 +
            then
 +
                EXCLUDE_OPT="$EXCLUDE_OPT --exclude $line"
 +
            fi
 +
            shift
 +
          done < $EXCLUDE
 +
      fi
 +
      # rdiff
 +
      date >> $BCK_DIR/$LOG_FILE
 +
      echo >> $BCK_DIR/$LOG_FILE
 +
      echo RDIFF-BACKUP OF $rdir >> $BCK_DIR/$LOG_FILE
 +
      echo rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE
 +
      rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 +
      ERROR=$?
 +
      if [ $ERROR -ne 0 ]
 +
      then
 +
          ERRORS="$ERRORS $BASE=$ERROR:"
 +
          ERROR_FLAG=1
 +
      fi
 +
      echo CLEANING BACKUPS OF $rdir >> $BCK_DIR/$LOG_FILE
 +
      echo rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 +
      rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 +
      ERROR=$?
 +
      if [ $ERROR -ne 0 ]
 +
      then
 +
          ERRORS="$ERRORS $BASE=$ERROR:"
 +
          ERROR_FLAG=1
 +
      fi
 +
      echo Backup statistics of $rdir >> $BCK_DIR/$STAT_FILE
 +
      cat ${BCK_DIR}${rdir}/rdiff-backup-data/session_statistics.$(date "+%Y-%m-%d")* >> $BCK_DIR/$STAT_FILE
 +
      echo >> $BCK_DIR/$STAT_FILE
 +
    done
 +
    if [ $ERROR_FLAG -eq 1 ]
 +
    then
 +
      (echo $ERRORS
 +
        date
 +
        echo Voir $BCK_DIR/$LOG_FILE
 +
        grep -i warning $BCK_DIR/$LOG_FILE
 +
        grep -i error $BCK_DIR/$LOG_FILE
 +
        cat $BCK_DIR/$STAT_FILE
 +
      )| mail -s "ERREUR RDIFF SUR $SERVERNAME $(date +%d/%m)" $MAIL_ADMIN
 +
    else
 +
      (date
 +
        ls -l $BCK_DIR/$LOG_FILE
 +
        df -k $BCK_DIR
 +
        cat $BCK_DIR/$STAT_FILE
 +
      )| mail -s "Sauvegarde $HOSTNAME $(date +%d/%m) terminee" $MAIL_ADMIN
 +
    fi
 +
    date >> $BCK_DIR/$LOG_FILE
 +
    /usr/bin/logger "FIN rdiff $HOSTNAME"
 +
    rm -f $BCK_DIR/$PID_FILE
 +
else
 +
    (echo "$HOSTNAME:$BCK_DIR/$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $HOSTNAME" $MAIL_ADMIN
 +
fi
 +
-------------
 +
Fichier rdbackup.conf
 +
# Configuration rdbackup
 +
SERVERNAME=localhost
 +
SERVERIP=127.0.0.1
 +
SERVERPORT=22
 +
SERVERUSR=admin
 +
MAIL_ADMIN=root
 +
RETENTION="--remove-older-than 1W"
 +
LIST=/home/sites/phototheque.odyssea.local/rdbackup.list
 +
EXCLUDE=/home/sites/phototheque.odyssea.local/rdbackup.exclude
 +
BCK_DIR=/home/backup
 +
RDIFF_OPTS="-v5 --force"
 +
 +
-------------------------------
 +
Pour mémoire, script v1 sans rdbackup.conf
 
  #!/bin/bash
 
  #!/bin/bash
 
  # Script de sauvegarde des serveurs (RDIFF sur SSH)
 
  # Script de sauvegarde des serveurs (RDIFF sur SSH)
Ligne 172 : Ligne 302 :
 
     (echo "$SERVERNAME:$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $SERVERNAME" fsoyer@systea.net
 
     (echo "$SERVERNAME:$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $SERVERNAME" fsoyer@systea.net
 
  fi
 
  fi
-----------------------
 
#!/bin/bash
 
# Script de sauvegarde des serveurs (RDIFF sur SSH)
 
# FSo 06/2010
 
#
 
#SERVERNAME=$1
 
#SERVERIP=$2
 
#SERVERPORT=$3
 
#SERVERUSR=$4
 
#RETENTION="--remove-older-than $5"
 
#LIST=$6
 
#EXCLUDE=$7
 
#BCK_DEV=/home
 
#BCK_DIR=$BCK_DEV/backup/$SERVERNAME
 
#RDIFF_OPTS="-v5 --force"
 
 
. /home/sites/phototheque.odyssea.local/rdbackup.conf
 
 
LOG_FILE=rdiff_ephoto.log
 
STAT_FILE=rdiff_ephoto.stats
 
PID_FILE=rdiff_ephoto.pid
 
 
while read line
 
do
 
  REMOTE_DIR="$REMOTE_DIR $line"
 
  shift
 
done < $LIST
 
 
if [ ! -e $BCK_DIR/$PID_FILE ]
 
then
 
  echo $$ > $BCK_DIR/$PID_FILE
 
  /usr/bin/logger "Sauvegarde rdiff $SERVERNAME"
 
  if [ -e  $BCK_DIR/$LOG_FILE ]
 
  then
 
        mv $BCK_DIR/$LOG_FILE $BCK_DIR/$LOG_FILE.0
 
  fi
 
  if [ -e  $BCK_DIR/$STAT_FILE ]
 
  then
 
        mv $BCK_DIR/$STAT_FILE $BCK_DIR/$STAT_FILE.0
 
  fi
 
  echo "Sauvegarde rdiff $SERVERNAME" > $BCK_DIR/$LOG_FILE
 
  #Boucle de backup
 
  ERROR_FLAG=0
 
  ERROR=0
 
  ERRORS="ERREURS: "
 
  for rdir in $(echo $REMOTE_DIR)
 
  do
 
      if [ ! -d ${BCK_DIR}${rdir} ]
 
      then
 
        mkdir -p ${BCK_DIR}${rdir}
 
      fi
 
 
      if [ ! "x$EXCLUDE" == "x" ]
 
      then
 
        EXCLUDE_OPT=""
 
        while read line
 
        do
 
            if  [[ $line =~ ^$rdir ]]
 
            then
 
              EXCLUDE_OPT="$EXCLUDE_OPT --exclude $line"
 
            fi
 
            shift
 
        done < $EXCLUDE
 
      fi
 
      # rdiff
 
      date >> $BCK_DIR/$LOG_FILE
 
      echo >> $BCK_DIR/$LOG_FILE
 
      echo RDIFF-BACKUP OF $rdir >> $BCK_DIR/$LOG_FILE
 
      echo rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE
 
      rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 
      ERROR=$?
 
      if [ $ERROR -ne 0 ]
 
      then
 
        ERRORS="$ERRORS $BASE=$ERROR:"
 
        ERROR_FLAG=1
 
      fi
 
      echo CLEANING BACKUPS OF $rdir >> $BCK_DIR/$LOG_FILE
 
      echo rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 
      rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
 
      ERROR=$?
 
      if [ $ERROR -ne 0 ]
 
      then
 
        ERRORS="$ERRORS $BASE=$ERROR:"
 
        ERROR_FLAG=1
 
      fi
 
      echo Backup statistics of $rdir >> $BCK_DIR/$STAT_FILE
 
      cat ${BCK_DIR}${rdir}/rdiff-backup-data/session_statistics.$(date "+%Y-%m-%d")* >> $BCK_DIR/$STAT_FILE
 
      echo >> $BCK_DIR/$STAT_FILE
 
  done
 
  if [ $ERROR_FLAG -eq 1 ]
 
  then
 
      (echo $ERRORS
 
      date
 
      echo Voir $BCK_DIR/$LOG_FILE
 
      grep -i warning $BCK_DIR/$LOG_FILE
 
      grep -i error $BCK_DIR/$LOG_FILE
 
      cat $BCK_DIR/$STAT_FILE
 
      )| mail -s "ERREUR RDIFF SUR $SERVERNAME $(date +%d/%m)" $MAIL_ADMIN
 
  else
 
      (date
 
      ls -l $BCK_DIR/$LOG_FILE
 
      df -k $BCK_DIR
 
      cat $BCK_DIR/$STAT_FILE
 
      )| mail -s "Sauvegarde $HOSTNAME $(date +%d/%m) terminee" $MAIL_ADMIN
 
  fi
 
  date >> $BCK_DIR/$LOG_FILE
 
  /usr/bin/logger "FIN rdiff $HOSTNAME"
 
  rm -f $BCK_DIR/$PID_FILE
 
else
 
    (echo "$HOSTNAME:$BCK_DIR/$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $HOSTNAME" $MAIL_ADMIN
 
fi
 
-------------
 
# Configuration rdbackup
 
SERVERNAME=localhost
 
SERVERIP=127.0.0.1
 
SERVERPORT=22
 
SERVERUSR=admin
 
MAIL_ADMIN=root
 
RETENTION="--remove-older-than 1W"
 
LIST=/home/sites/phototheque.odyssea.local/rdbackup.list
 
EXCLUDE=/home/sites/phototheque.odyssea.local/rdbackup.exclude
 
BCK_DIR=/home/backup
 
RDIFF_OPTS="-v5 --force"
 

Version du 15 septembre 2010 à 08:55

A AJOUTER : procédure Windows

Sur Debian 5 --> v1.2.5 (la différence de version mineure (.5 pour .8) ne provoque qu'un avertissement)

apt-get install rdiff-backup

Si on veut une version plus récente, il faut compiler :

apt-get install librsync-dev python-dev
wget http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.2.8.tar.gz
tar -xvzf rdiff-backup-1.2.8.tar.gz
cd rdiff-backup-1.2.8
python setup.py install

Sur CentOS, installation repos RPMForge (http://wiki.centos.org/AdditionalResources/Repositories/RPMForge).
Sur CentOS4 :

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el4.rf.i386.rpm

Sur CentOS5 :

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

Puis

rpm -i rpmforge-release-0.5.1-1.el*.rf.i386.rpm
vi /etc/yum.repos.d/rpmforge.repo # --> mettre enabled à 0
yum --enablerepo=rpmforge install rdiff-backup

Test d'accès à un serveur :

rdiff-backup --test-server root@192.168.1.21::/home

Sauvegarde à partir d'un backup existant (cp ou rsync) : le répertoire destination existe mais n'est pas au format rdiff (manque les infos rdiff-data), il faut le forcer la première fois :

rdiff-backup --force -v5 root@192.168.1.2::/etc /backup/etc > rdiff_server1.log 2>&1

Ensuite on peut enlever le "--force".


Nettoyage Des incréments supérieurs à une fenêtre de rétention :

rdiff-backup -v5 --remove-older-than 4W /backup

Le "4W" signifie "4 weeks", soit 4 semaines à conserver. On peut donner un nombre de jours ("D") ou d'heures ("H"). Tous les incréments supérieurs à ce délai seront supprimés.


Liste des incréments :
Sur le serveur de sauvegarde :

rdiff-backup  -l /home/backup/server1/home/

A partir du serveur sauvegardé (remote-schema n'est utile que si le port ssh n'est pas standard) :

rdiff-backup -l --remote-schema='ssh -p 225 -C %s rdiff-backup --server' root@192.168.1.250::/home/backup

Restore - Exemples

# /etc/hosts d'il y a 1 heure (--force si le fichier existe et qu'il faut l'écraser)
rdiff-backup -v5 -r "1h" --force ./etc/hosts root@192.168.1.2::/etc/hosts
# /etc/ d'il y a 3 jours
rdiff-backup -v5 -r "3D" --force ./etc root@192.168.1.2::/etc

Exemple de script rdbackup.sh

#!/bin/bash
# Script de sauvegarde des serveurs (RDIFF sur SSH)
# FSo 06/2010
# v1.0 from sbackup.sh (RSYNC) v2
# Changelog :
# - Moving variables in a .conf file
#   Variables :
#SERVERNAME=$1
#SERVERIP=$2
#SERVERPORT=$3
#SERVERUSR=$4
#RETENTION="--remove-older-than $5"
#LIST=$6
#EXCLUDE=$7
#BCK_DEV=/home
#BCK_DIR=$BCK_DEV/backup/$SERVERNAME
#RDIFF_OPTS="-v5 --force"

. /home/sites/phototheque.odyssea.local/rdbackup.conf

# Fix variables
LOG_FILE=rdiff_ephoto.log
STAT_FILE=rdiff_ephoto.stats
PID_FILE=rdiff_ephoto.pid

while read line
do
   REMOTE_DIR="$REMOTE_DIR $line"
   shift
done < $LIST

if [ ! -e $BCK_DIR/$PID_FILE ]
then
   echo $$ > $BCK_DIR/$PID_FILE
   /usr/bin/logger "Sauvegarde rdiff $SERVERNAME"
   if [ -e  $BCK_DIR/$LOG_FILE ]
   then
        mv $BCK_DIR/$LOG_FILE $BCK_DIR/$LOG_FILE.0
   fi
   if [ -e  $BCK_DIR/$STAT_FILE ]
   then
        mv $BCK_DIR/$STAT_FILE $BCK_DIR/$STAT_FILE.0
   fi
   echo "Sauvegarde rdiff $SERVERNAME" > $BCK_DIR/$LOG_FILE
   #Boucle de backup
   ERROR_FLAG=0
   ERROR=0
   ERRORS="ERREURS: "
   for rdir in $(echo $REMOTE_DIR)
   do
      if [ ! -d ${BCK_DIR}${rdir} ]
      then
         mkdir -p ${BCK_DIR}${rdir}
      fi

      if [ ! "x$EXCLUDE" == "x" ]
      then
         EXCLUDE_OPT=""
         while read line
         do
            if  $line =~ ^$rdir 
            then
               EXCLUDE_OPT="$EXCLUDE_OPT --exclude $line"
            fi
            shift
         done < $EXCLUDE
      fi
      # rdiff
      date >> $BCK_DIR/$LOG_FILE
      echo >> $BCK_DIR/$LOG_FILE
      echo RDIFF-BACKUP OF $rdir >> $BCK_DIR/$LOG_FILE
      echo rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE
      rdiff-backup $RDIFF_OPTS $EXCLUDE_OPT $rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      ERROR=$?
      if [ $ERROR -ne 0 ]
      then
         ERRORS="$ERRORS $BASE=$ERROR:"
         ERROR_FLAG=1
      fi
      echo CLEANING BACKUPS OF $rdir >> $BCK_DIR/$LOG_FILE
      echo rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      ERROR=$?
      if [ $ERROR -ne 0 ]
      then
         ERRORS="$ERRORS $BASE=$ERROR:"
         ERROR_FLAG=1
      fi
      echo Backup statistics of $rdir >> $BCK_DIR/$STAT_FILE
      cat ${BCK_DIR}${rdir}/rdiff-backup-data/session_statistics.$(date "+%Y-%m-%d")* >> $BCK_DIR/$STAT_FILE
      echo >> $BCK_DIR/$STAT_FILE
   done
   if [ $ERROR_FLAG -eq 1 ]
   then
      (echo $ERRORS
       date
       echo Voir $BCK_DIR/$LOG_FILE
       grep -i warning $BCK_DIR/$LOG_FILE
       grep -i error $BCK_DIR/$LOG_FILE
       cat $BCK_DIR/$STAT_FILE
      )| mail -s "ERREUR RDIFF SUR $SERVERNAME $(date +%d/%m)" $MAIL_ADMIN
   else
      (date
       ls -l $BCK_DIR/$LOG_FILE
       df -k $BCK_DIR
       cat $BCK_DIR/$STAT_FILE
      )| mail -s "Sauvegarde $HOSTNAME $(date +%d/%m) terminee" $MAIL_ADMIN
   fi
   date >> $BCK_DIR/$LOG_FILE
   /usr/bin/logger "FIN rdiff $HOSTNAME"
   rm -f $BCK_DIR/$PID_FILE
else
    (echo "$HOSTNAME:$BCK_DIR/$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $HOSTNAME" $MAIL_ADMIN
fi

Fichier rdbackup.conf

# Configuration rdbackup
SERVERNAME=localhost
SERVERIP=127.0.0.1
SERVERPORT=22
SERVERUSR=admin
MAIL_ADMIN=root
RETENTION="--remove-older-than 1W"
LIST=/home/sites/phototheque.odyssea.local/rdbackup.list
EXCLUDE=/home/sites/phototheque.odyssea.local/rdbackup.exclude
BCK_DIR=/home/backup
RDIFF_OPTS="-v5 --force"

Pour mémoire, script v1 sans rdbackup.conf

#!/bin/bash
# Script de sauvegarde des serveurs (RDIFF sur SSH)
# FSo 06/2010
# v1.0 from sbackup.sh (RSYNC) v1.2
# Changelog :
#
# svg_server.sh <hostname> <ip> <port> <user valide pour ssh> <duree retention> <fichier liste backup> <fichier exclusions>
# exemple cron.d :
#00 02 * * *      root /backup/rdbackup.sh server.example.fr 123.123.12.123 22 root 1W /backup/server.list /backup/server.excl > /backup/log/svg_server.cron.err 2>&1
#
SERVERNAME=$1
SERVERIP=$2
SERVERPORT=$3
SERVERUSR=$4
RETENTION="--remove-older-than $5"
LIST=$6
EXCLUDE=$7
BCK_DEV=/home
BCK_DIR=$BCK_DEV/backup/$SERVERNAME
LOG_FILE=rdiff_$SERVERNAME.log
STAT_FILE=rdiff_$SERVERNAME.stats
PID_FILE=/var/run/rdiff_$SERVERNAME.pid
RDIFF_OPTS="-v5 --force"

if [ $# -lt 6 ]
then
   echo Usage : $0 serverFQDN serverIP serverSSHPORT SSHUSER RETENTION BACKUPLISTfile [EXCLUDEfile]
   exit 1
fi

shift; shift; shift
while read line
do
   REMOTE_DIR="$REMOTE_DIR $line"
   shift
done < $LIST

if [ ! -e $PID_FILE ]
then
   echo $$ > $PID_FILE
   /usr/bin/logger "Sauvegarde rdiff $SERVERNAME"
   if [ -e  $BCK_DIR/$LOG_FILE ]
   then
        mv $BCK_DIR/$LOG_FILE $BCK_DIR/$LOG_FILE.0
   fi
   if [ -e  $BCK_DIR/$STAT_FILE ]
   then
        mv $BCK_DIR/$STAT_FILE $BCK_DIR/$STAT_FILE.0
   fi
   echo "Sauvegarde rdiff $SERVERNAME" > $BCK_DIR/$LOG_FILE 
   #Boucle de backup
   ERROR_FLAG=0
   ERROR=0
   ERRORS="ERREURS: "
   for rdir in $(echo $REMOTE_DIR)
   do
      if [ ! -d ${BCK_DIR}${rdir} ]
      then
         mkdir -p ${BCK_DIR}${rdir}
      fi 

      if [ ! "x$EXCLUDE" == "x" ]
      then
         EXCLUDE_OPT=""
         while read line
         do
            if $line =~ ^$rdir 
            then
               EXCLUDE_OPT="$EXCLUDE_OPT --exclude $line"
            fi
            shift
            done < $EXCLUDE
      fi
      # rdiff
      date >> $BCK_DIR/$LOG_FILE
      echo >> $BCK_DIR/$LOG_FILE
      echo RDIFF-BACKUP OF $rdir >> $BCK_DIR/$LOG_FILE
      echo rdiff-backup $RDIFF_OPTS --remote-schema "ssh -p $SERVERPORT %s rdiff-backup --server" $EXCLUDE_OPT $SERVERUSR@$SERVERIP::$rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE
      rdiff-backup $RDIFF_OPTS --remote-schema "ssh -p $SERVERPORT %s rdiff-backup --server" $EXCLUDE_OPT $SERVERUSR@$SERVERIP::$rdir ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      ERROR=$?
      if [ $ERROR -ne 0 ]
      then 
         ERRORS="$ERRORS $BASE=$ERROR:"
         ERROR_FLAG=1
      fi
      echo CLEANING BACKUPS OF $rdir >> $BCK_DIR/$LOG_FILE
      echo rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      rdiff-backup $RDIFF_OPTS $RETENTION ${BCK_DIR}${rdir} >> $BCK_DIR/$LOG_FILE 2>&1
      ERROR=$?
      if [ $ERROR -ne 0 ]
      then 
         ERRORS="$ERRORS $BASE=$ERROR:"
         ERROR_FLAG=1
      fi
      echo Backup statistics of $rdir >> $BCK_DIR/$STAT_FILE
      cat ${BCK_DIR}${rdir}/rdiff-backup-data/session_statistics.$(date "+%Y-%m-%d")* >> $BCK_DIR/$STAT_FILE 
      echo >> $BCK_DIR/$STAT_FILE
   done
   if [ $ERROR_FLAG -eq 1 ]
   then
      (echo $ERRORS
       date
       echo Voir $BCK_DIR/$LOG_FILE
       grep -i warning $BCK_DIR/$LOG_FILE
       grep -i error $BCK_DIR/$LOG_FILE
       cat $BCK_DIR/$STAT_FILE
      )| mail -s "ERREUR RDIFF SUR $SERVERNAME $(date +%d/%m)" fsoyer@systea.net
   else
      (date
       ls -l $BCK_DIR/$LOG_FILE
       df -k $BCK_DIR
       cat $BCK_DIR/$STAT_FILE
      )| mail -s "Sauvegarde $SERVERNAME $(date +%d/%m) terminee" fsoyer@systea.net
   fi
   date >> $BCK_DIR/$LOG_FILE
   /usr/bin/logger "FIN rdiff $SERVERNAME"
   rm -f $PID_FILE
else
    (echo "$SERVERNAME:$PID_FILE existe : abandon de $0") | mail -s "Erreur sur backup $SERVERNAME" fsoyer@systea.net
fi