Avez-vous lu l'article concernant la sauvegarde avec
rsync?
-
http://www.progboards.com/sujet-1608_sauvegarde_avec_rsync.php
Vous savez donc déjà que l'on ne transfère que les nouveau fichiers, et ceux qui ont été modifiés, afin de ne pas devoir transférer la totalité des données inutilement à chaque sauvegarde.
Mettons à présent cette particularité à profit pour nous constituer une sauvegarde incrémentale.
Sauvegarde incrémentale
Il s'agit d'un principe très simple qui vas nous permettre de conserver une sauvegarde des fichiers sur plusieurs jours.
On pourra ainsi retrouver un fichier tel qu'il était à J-1, J-2, J-3, etc.
La méthode brutale
Si vous vous sentez l'âme d'une brute épaisse, vous pouvez évidement tenir à jour plusieurs répertoires en fonction du jour de la semaine par exemple.
Mais pourquoi transférer et stocker beaucoup plus de données que nécessaire? Pourquoi ne pas économiser de la bande passante, de l'espace disque, et minimiser des délais de transfert?
La méthode du Jedi
Les liens hard tu utiliseras, jeune Padawan!
Pour l'exemple, nous sauvegarderons les fichiers du répertoire /home du serveur truc.machin.com dans le dossier /backup/truc local sur 4 jours.
Nous avons donc des dossiers à créer:
/backup/truc pour la sauvegarde du jour
/backup/truc.1 pour la sauvegarde à J-1
/backup/truc.2 pour la sauvegarde à J-2
/backup/truc.3 pour la sauvegarde à J-3
mkdir /backup/truc
mkdir /backup/truc.1
mkdir /backup/truc.2
mkdir /backup/truc.3
Dans notre script de sauvegarde, nous allons renommer les répertoires, puis faire un lien hard des fichiers de la dernière sauvegarde avant de lancer rsync dans ce même répertoire:
cd /backup
mv truc.3 truc.tmp
mv truc.2 truc.3
mv truc.1 truc.2
mv truc truc.1
mv truc.tmp truc
cp -al truc.1/. truc
rsync --verbose --progress --stats --compress --rsh=/usr/bin/ssh \
--recursive --times --perms --links --delete \
root@truc.machin.com:/home/ /backup/truc
Il ne nous reste plus qu'à lancer le script avec une tâche cron journalière, que la force soit avec vous!
Change la caféine en lignes de code, et aurait parfois besoin de l'inverse.