Aller au contenu

Sauvegarde Incrementale Avec Rsync D'un Volume Vers Un Autre


ergu

Messages recommandés

Posté(e)

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.

#!/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

exit

# ----------------------------------------------------------------

# ----------------------------------------------------------------

Vous pouvez utiliser ce srcipt. Ce batch fonctionne parfaitement bien, déclenchement via crontab toutes les nuits. Toutefois, il me reste un bout de script à pofiner pour que les dossiers "JOUR" de plus de X jours soit détruit par le process. Je commence à avoir un paquet de dossiers JOUR, que je peux détruire à la main bien sûr, mais un processus automatique serait plus convenable. Là, je dois dire que je cale franchement. Si quelqu'un à une idée, sur la question, je suis preneur.

J'ai bien essayé << find $BACKUP1 atime +60 -exec rm -Rf {} \>> mais cela me détruit l'entier de mon répertoire JOUR.

Je voudrais supprimer les dossiers qui ont plus de deux mois.

Je m'en remets à vos connaissances.

Eric

  • 3 semaines après...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.