Maniatux's Blog

Welcome to the internet

Scripts de sauvegarde en vrac

Rédigé par Xavier - -

Exports de bases de données

Création d'un utilisateur MySQL pour les backup :

# mysql -u root -p
create user backup identified by 'password';
grant select, lock tables on *.* to backup identified by 'password';
flush privileges;
quit;

Création d'un script de sauvegarde :

# vi /root/mysqlbackup.sh
#!/bin/sh
mysqldump --user=backup --password=password database1 > database1-`date +%d-%m-%Y`.sql
mysqldump --user=backup --password=password database2 > database2-`date +%d-%m-%Y`.sql

Ce fichier contenant des mots de passe, il vaut mieux en restreindre l'accès :

# chown root:root /root/mysqlbackup.sh
chmod 600 /root/mysqlbackup.sh
chmod +x /root/mysqlbackup.sh

A mettre ensuite en tâche planifiée :

# crontab -e
@weekly /root/mysqlbackup.sh

Dans ce cas c'est toutes les semaines. Les fichiers .sql créés porteront la date dans leur nom !

Sauvegarde des conteneurs LXC

Pour ma part j'ai choisi de faire des sauvegardes complètes une fois par mois (à récupérer ensuite par sftp). Le fichier de sauvegarde est compressé et indique le mois dans son nom.

# vi /root/backup.sh
!/bin/sh
tar -zcf /root/"sauvegarde-`date --date "yesterday" +%B-%Y`".tar.gz /var/lib/lxc/*

EDIT : Sur remarque (très juste de etenil) j'ai remplacé 7z (version initiale de mon article) par tar car ce dernier conserve les droits.

Ensuite, il ne reste qu'à planifier :

# crontab -e
@monthly /root/backup.sh

Notez que la sauvegarde va se déclencher le 1er du mois à minuit. C'est la raison pour laquelle la commande date porte l'argument "yesterday" car on veut indiquer que c'est une sauvegarde contenant les données du mois terminé.

Classé dans : Sysadmin - Mots clés : aucun