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 !