En quelques semaines, le disque dur de mon pwG4 est passé en mode casserole et les pistons de ma 306 ont gaufrés leurs soupapes - #fail
J'ai regardé mon vieux serveur de backup... prise de conscience... et achat rapide d'un petit NAS[1].
Pas convaincu par la wonderful ajax webadmin de synology, j'ai préféré une solution de backup incrémental avec rsnapshot. L'occasion de poster un billet éclair.
rsnapshot
rsnapshot, basé sur rsync, permet de prendre des instantanés d'un système de fichiers à un moment T. Il créé l'illusion de multiples sauvegardes complètes mais n'occupe, en réalité, qu'une seule sauvegarde accompagnée des incréments.
Facile à mettre en place, c'est une solution plutôt souple et efficace pour garantir l'intégrité des sites Web versatiles.
Installation et configuration
Quelques scripts perl à télécharger et le tour est presque joué.
Tuning du fichier de conf. /etc/rsnapshot.conf :
On spéc. la racine du répertoire de backup :
# All snapshots will be stored under this root directory. snapshot_root /mnt/backup
On spéc. les snapshots, ici :
2 par jour
7 jours sur 7
1 par semaine
et les 3 derniers mois
######################################### # BACKUP INTERVALS # # Must be unique and in ascending order # # i.e. hourly, daily, weekly, etc. # ######################################### interval hourly 2 interval daily 7 interval weekly 4 interval monthly 3
On en profite pour exclure les lourdos :
# The include_file and exclude_file parameters, if enabled, simply get # passed directly to rsync. Please look up the --include-from and # --exclude-from options in the rsync man page for more details. # #include_file /path/to/include/file exclude_file /mnt/backup/exclude
Avec dans /mnt/backup/exclude des trucs du genre :
cache/
Pour être cohérent avec le précédent billet sur l'accès sécurisé au serveur on spéc. le port :
ssh_args -p 10068
Enfin, le coeur, on spéc. l'adresse du distant et le lien relatif sur le local :
# EXAMPLE.COM #backup root@example.com:/etc/ example.com/ backup particul@88.191.38.139:/www/ particul.es/
Pour les pépins de passphrase et d'authentification par clé : La-Nuit-des-morts-vivants
Test et automatisation
Pour tester la validité du fichier de config :
.-$ rsnapshot configtest
Pour tirer à blanc :
rsnapshot -t hourly
Reste plus qu'à croner :
.-$ sudo crontab -e 0 */12 * * * /usr/local/bin/rsnapshot hourly 50 3 * * * /usr/local/bin/rsnapshot daily 40 2 * * 6 /usr/local/bin/rsnapshot weekly 30 1 1 * * /usr/local/bin/rsnapshot monthly
Résultat
Nous disposons de snapshots où les sauvegardes sont stockées. Les dossiers sont créés pour les différents intervalles qui ont été définis. Après quelques mois, le dossier de backup devrait ressembler à çà :
.-$ rsnapshot du particul.es/ 5.2G /.snapshots/hourly.0/particul.es/ 5.4M /.snapshots/hourly.1/particul.es/ 5.4M /.snapshots/daily.0/particul.es/ 728M /.snapshots/daily.1/particul.es/ 4.8M /.snapshots/daily.2/particul.es/ 4.8M /.snapshots/daily.3/particul.es/ 6.2M /.snapshots/daily.4/particul.es/ 4.8M /.snapshots/daily.5/particul.es/ 4.8M /.snapshots/daily.6/particul.es/ 12M /.snapshots/weekly.0/particul.es/ 5.3M /.snapshots/weekly.1/particul.es/ 5.4M /.snapshots/weekly.2/particul.es/ 4.9M /.snapshots/weekly.3/particul.es/ 4.8M /.snapshots/monthly.0/particul.es/ 120M /.snapshots/monthly.1/particul.es/ 5.3M /.snapshots/monthly.2/particul.es/ 6.0G total
Sauvegarde SQL
Ne pas oublier de sauvegarder la BD du site, une petit ajout dans le fichier de conf :
$.- vi /etc/rsnapshot.conf backup_script ssh particul@88.191.38.139 mysqldump -u particul --password=s|<1llz --quick --single-transaction particul | /bin/gzip >| ./mysqldump.gz
Conclusion
Quelques liens devraient suffire pour clôturer le post...
Rsnapshot est très largement inspiré de l'article de Mike Rubel
Un petit livre pour aller plus loin.
See ya !!!
Comments
6 comments
Aaaah rsnapshot, du bonheur :)
Tu me fait penser qu'il faudrait que je mette à jour la traduction du HOWTO, celle que j'ai faite pour la 1.1.6 est obsolète.
De mon côté je viens de découvrir backuppc [1]. J'ai eu la chance de suivre une formation de grande qualité et je suis litéralement conquis. Tous les bons principes de rsnapshot sont utilisés mais la solution va jusqu'au bout : la restauration des données y est intégrée.
See Ya !
[1] http://backuppc.sourceforge.net/
Tjrs un longueur d'avance mano...
mais ça a l'air mieu qu'un rsync ^_^
par contre l'install est un poil lourdingue
à tester
Ben tiens je viens justement d'acheter ce NAS (DS110j) avec un petit disque de 2To pour faire du backup de notre serveur de fichier et de nos sites.
Un peu déçu car je pensais qu'il intègrerai une solution de sauvegarde incrémentale de dossier distant (par NFS, Rsync, etc) or il n'y a rien de semblable dans l'interface web. On ne peut que sauvegardé ce qu'il y'a sur un autre NAS. Sinon les fonctions de sauvegarde ne permettent que ce qu'il ya sur le NAS ailleurs ; c'est l'inverse ce que je veux : que le NAS s'occupe de tous et fasse ses sauvegardes incrémentales tous seul comme le faisait mon feu serveur de backup (un vieil athlon XP 1800+).
Par contre, je ne réussi pas à installer rsnapshot dessus que ce soit en ssh avec ./configure ./make ou par Perl Cpan... A chaque fois ça veut pas car il y'a pas "make" sur le système.
Je comprend pas comment tu as fait.
J'ai commencé par installer un gestionnaire de paquets :
$.- wget http://ipkg.nslu2-linux.org/feeds/o...
$.- sh syno-mvkw-bootstrap_1.2-7_arm.xsh
$.- ipkg update; ipkg upgrade; ipkg rsnapshot
* Pour repérer ton bootstrap : http://www.synology-wiki.de/index.p...
Ok merci beaucoup, c'est bon rsnapshot est en place et les volumes du serveur de fichier sont montés en NFS :D