#!/bin/bash # Script effectuant un backup des principaux repertoires # du serveur ScoDoc vers une machine distante. # utilise rsync (pour ne cpier que les fichiers modifies) # et ssh (pour se connecter de faon securisee). # # L'utilisateur root du serveur scodoc (qui execute ce script) # doit pouvoir se conencter directement (sans mot de passe) sur # la machine distante (installer les cles ssh necessaires). # # A adapter a vos besoins. Utilisation a vos risques et perils. # # E. Viennet, 2002 # Installation: # 1- Installer rsync: # apt-get install rsync # 2- mettre en place un job cron: # par exemple copier ce script dans /etc/cron.daily/ # (et le rendre executable avec chmod +x ...) # -------------------- CONFIGURATION A ADAPTER remotehost=XXXX # nom ou IP du serveur de sauvegarde destdir=/home/SAU-SCODOC # repertoire sur serveur de sauvegarde logfile=/var/log/rsynclog # log sur serveur scodoc # A qui envoyer un mail en cas d'erreur de la sauvegarde: SUPERVISORMAIL=emmanuel.viennet@example.com CALLER=`basename $0` MACHINE=`hostname -s` # ----------------------------------------------------- # ---------------------------------- # Subroutine to terminate abnormally # ---------------------------------- terminate() { dateTest=`date` mail -s "Attention: Probleme sauvegarde ScoDoc" $SUPERVISORMAIL <> $logfile 2>&1 echo "starting at" `date` >> $logfile 2>&1 rsync -vaze ssh --delete --rsync-path=/usr/bin/rsync $srcdir $remotehost":"$destdir >> $logfile 2>&1 if [ $? -ne 0 ] then echo Error in rsync: code=$? terminate fi echo "ending at" `date` >> $logfile 2>&1 echo "---------------" >> $logfile 2>&1 } # ----------- REPERTOIRES A SAUVEGARDER: for srcdir in /etc /home /root /opt /usr/local /var; do rsync_mirror_to_remote done