Sauvegarder vos données avec rsnapshot

Pour l’emplacement des données, je me suis créé une partition /backup avec LVM de 30 Go.

J’utilise rsnapshot car il permet de sauvegarder par heure / jour / mois ce qui est très pratique pour remonter dans le temps. Et comme il utilise des « hard links », la place occupée est très faible à chaque sauvegarde.

apt-get install rsnapshot

Les modifications que j’effectue sur le fichier de configuration /etc/rsnapshot.conf sont les suivantes :

snapshot_root   /backup/

retain      hourly  6
retain      daily   7
retain      weekly  4
retain      monthly 3

backup  /home/      localhost/
backup  /etc/       localhost/
backup  /usr/local/ localhost/
backup_script   /usr/local/bin/backup_mysql.sh  localhost/mysql/

Attention à bien mettre des tabulations plutôt que des espaces, sinon vous allez avoir des erreurs lors de l’exécution de rsnapshot.

Le script /usr/local/bin/backup_mysql.sh réalise une sauvegarde de la base MySQL en créant 1 fichier par base de données. Voici ce qu’il contient :

#!/bin/bash

#############################################
# MySQL
#############################################
for db in $(mysql -u root -pxxxxxx -e 'show databases' -s --skip-column-names)
do
        mysqldump --opt --databases -u root -pxxxxxx $db | /usr/bin/pigz -v -9 -p 3 > "mysql_dump-$db.gz";
        Return_Code=$?;
        if [[ $Return_Code -ne 0  ]]
        then
                echo "Erreur lors de la sauvegarde de ($db)";
        else
                echo "Sauvegarde reussie pour ($db)";
        fi
done

exit 0

Le programme de compression que j’utilise se nomme PIGZ, il permet de créer un GZIP en utilisant plusieurs cores ce qui permet un incroyable gain de temps.

Pour l’installer :

apt-get install pigz

Ensuite il faudrait déporter la sauvegarder sur une zone autre que le disque local sur serveur car en cas de crash, je ne pourrais plus accéder aux sauvegardes. 😉

Bonne sauvegarde !

Taggé , , , , .Lien pour marque-pages : Permaliens.

Laisser un commentaire