Backup Mysql+fichiers

Hi All,
Venant d’acquérir mon nouveau server j’ai du mettre en place un script de backup.
Script que je vous explique ligne par ligne dans cette article.

voici les premières lignes :

#!/bin/bash
user=’root’
pass=’rootpassword’

On commence par définir  l’utilisateur et le mdp de la base

cd /home/backup/mysql

On se place dans le dossier où l’on souhaite placer les backups des bases

dirname= »mysql-`date +\%Y-%m-%d_%Hh%M` »
mkdir $dirname

Puis on crée un dossier avec la date et l’heure comme nom

databases=( $(mysql -u $user -p$pass -e « show databases » | grep -v Database) )
for database in ${databases[@]}
do

mkdir « ${dirname}/${database} »
tables=( $(mysql $database -u $user -p$pass -e ‘show tables’ | grep -v Tables_in) )
for table in ${tables[@]}
do

$(mysqldump -u $user -p$pass –quick –add-locks –lock-tables –extended-insert $database $table > ${dirname}/${database}/${table}.sql)

done

done

Pour chaque base on cré un dossier dans le dossier principal puis pour chaque table de cette base on crée un fichier .sql qui contien la table.

tar -cjf ${dirname}.tar.bz2 $dirname
rm -rf $dirname

Ensuite on compresse le dossier et on le supprime.

La partie Mysql est terminer. Regardons maintenant comment récupérer ce dossier compresser ainsi que d’autre sur un server de backup.

Pour la synchro j’utilise rsync.

rsync -Haurov  –stats –delete –backup –backup-dir=/home/backup/deleted/bibabox  –exclude=/home/site/download /home backup@baloo.bibabox.fr:/home/backup/bibabox
rsync -Haurov  –stats –delete –backup –backup-dir=/home/backup/deleted/bibabox /etc backup@baloo.bibabox.fr:/home/backup/bibabox
rsync -Haurov  –stats –delete –backup –backup-dir=/home/backup/deleted/bibabox /var/log backup@baloo.bibabox.fr:/home/backup/bibabox

Comme vous le comprenez peut-être je backup 3 dossiers  (1 par ligne) sur mon serv baloo.bibabox.fr.

Les arguments de rsync sont :

-H, –hard-links préserve les liens matériels

-a, –archive mode archivage

-u, –update saute les fichiers plus récents chez le destinataire

-r, –recursive visite récursive des répertoires

-o, –owner préserve le propriétaire (root uniquement)

-v, –verbose plus loquace

Ainsi que :
–stats
Nous affiche quelque statistique supplémentaire (nombre de fichier envoyés, taille de la transaction)

–delete –backup –backup-dir=/home/backup/deleted/bibabox
Ceci est utile si un fichier a été supprimé sur le serveur principal entre 2 synchronisation, au lieu de le supprimé sur du serveur de backup, il est placé dans /home/backup/deleted/bibabox. Cette option est utile en cas de mauvaise manip.
Il faut évité de l’utiliser sur des dossiers qui serve de transition de fichier comme une dossier de torrent.

Pour exclure un dossier on rajoute juste cela
–exclude=/home/site/download

Pour finir on précise le dossier a backup ici /home, /var/log et /etc ainsi que la destination qui peut etre un dossier local ou distant.
Ici j’ai choisi un dossier distant backup@baloo.bibabox.fr:/home/backup/bibabox.
ATTENTION pour l’utilisation d’un dossier distant il vous faut utiliser une clé public/privé pour se connecter sinon il vous demandera le mot de passe.

Download:
source : backup.sh

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *