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
Vus : 1017
Publié par Maniatux : 95