Synology
: une sauvegarde incrémentale à l'aide de Rsync
Introduction:
Voici le script qui effectue des sauvegardes incrémentales
de mon répertoire WEB chaque nuit. Ce script utilise Rsync présent sur
le Syno. Il recopie les données de volume1/web vers volume2/miroir/web
à l'identique.
Les fichiers modifiés ou supprimés dans la journée, se retrouvent quant
à eux déposés dans un dossier portant la date du jour, ce qui permet de
récupérer très rapidement les données. Par exemple le dossier
2007-12-25 comprendra les fichiers de ce jour, uniquement de celui-ci,
le dossier Miroir Web quant à lui sera l'image de la source au moment
"t". C'est une réelle sauvegarde incrémentale.
Le script :
#!/bin/sh
#
Script de sauvegarde incrementale pour Synology #
Variable representant le jour de la sauvegarde
JOUR=`date +%Y-%m-%d`
#
Variable comportant le chemin du fichier journal
LOG=/volume2/miroir/scripts/log
#
Variables des noms et chemins pour les sauvegardes
NOM1="##### SAUVEGARDE WEB"
SOURCE1=/volume1/web
DEST1=/volume2/miroir/web
BACKUP1=/volume2/miroir/scripts/sauv-jour/web
# Fin
de mise en place des variables #
---------------------------------------------------------------- #
----------------------------------------------------------------
#
backup1 # On
cree le repertoire du jour et un fichier journal.log qui nous donnera # les
heures de debut et de fin du transfert
if [ -d "$BACKUP1/$JOUR" ]
then
echo "Le repertoire $BACKUP1/${JOUR} existe deja !";
else
mkdir $BACKUP1/$JOUR;
fi
touch $LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log # On
ecrit l heure de debut dans le journal
echo "Heure de demarrage du transfert:" >>
$LOG/journal.log
date >> $LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log # On
ecrit le nom de la sauvegarde dans le journal
echo "Nom de la
sauvegarde:"
$NOM1 >> $LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log # On
lance le script rsync de transfert des fichiers
rsync --delete --backup --backup-dir=$BACKUP1/$JOUR -arv
$SOURCE1/ $DEST1
echo "sauvegarde" $NOM1
"ok"
>> $LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log # On
ecrit l'heure de fin dans le journal
echo "Heure de fin du transfert:" >>
$LOG/journal.log
date >> $LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log
echo "---------------------------------" >>
$LOG/journal.log