Sauvegarde rsync avec roulement de 3 jours
Pour sauvegarder mon serveur, j'ai choisi d'utiliser simplement rsync avec une tâche cron. En effet mon infra n'est pas assez grosse pour justifier la présence d'une machine de guerre telle que Bacula. Rsync va permettre, avec un peu d'astuce, une sauvegarde incrémentielle avec roulement sur 3 jours. Cela veut dire que je peux restaurer des choses en puisant au choix dans les sauvegardes des 3 derniers jours.
Note importante
Je ne suis pas l'auteur du script, il est assez répandu sur le web, je ne sais pas qui l'a fait le premier. Mais il est très pratique !
Notez aussi que dans le script, la sauvegarde se fait en local sur le disque dur, ce qui n'est pas très prudent. Il est préférable de le faire sur un serveur distant, ou sur un support USB. En effet en cas de perte du disque dur vous serez bien contents d'avoir vos données sous le coude :)
Le script
#!/bin/sh TARGET=/usr/backup SOURCE=/usr/jails /bin/rm -Rf $TARGET/backup.2 /bin/mv $TARGET/backup.1 $TARGET/backup.2 /bin/mv $TARGET/backup.0 $TARGET/backup.1 /usr/local/bin/rsync -a --no-o --delete --safe-links --link-dest=$TARGET/backup. 1 $SOURCE $TARGET/backup.0/
Note : il est obligatoire d'utiliser le chemin complet pour rsync (/usr/local/bin/rsync) sinon le script ne fonctionnera pas lorsqu'il sera invoqué en cron. Pensez à créer le TARGET avec mkdir.
Ajout au cron
Avant tout n'oubliez pas de rendre le script exécutable :
# chmod +x backup.sh
Ensuite éditez vos tâches :
# crontab -e
Puis ajoutez la ligne suivante :
@daily /root/backup.sh
Comment restaurer
Pour restaurer il faut utiliser la commande cp tout simplement. Quelques exemples :
# POUR UN FICHIER DE LA VEILLE # cp /usr/backup/xmpp/var/log/messages /usr/jails/xmpp/var/log/ # POUR RESTAURER UN DOSSIER D'IL Y A DEUX JOURS # cp -R /usr/backup/xmpp/home/sqlite /usr/jails/xmpp/home