« MySQL : Backup d'un serveur » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 12 : | Ligne 12 : | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
MUSER='backup' # Nom d'utilisateur pour MySQL | |||
BUSER='backup' # Nom d'utilisateur pour la connexion SSH au serveur de backup | |||
BSRV='srv2' # Adresse ou non du serveur de backup | |||
DEST='/backup' # Répertoire où envoyer le fichier sur le serveur de backup | |||
DATE=`date +%y%m%d` | DATE=`date +%y%m%d` | ||
Ligne 19 : | Ligne 24 : | ||
CGZIP='/bin/gzip' | CGZIP='/bin/gzip' | ||
CFIND='/bin/find' | CFIND='/bin/find' | ||
CSCP='/usr/bin/scp' | |||
############################################ | |||
## RIEN A MODIFIER AU DELÀ DE CETTE LIGNE ## | |||
############################################ | |||
cd $DATADIR | cd $DATADIR | ||
for i in `${CFIND} * -d`; do mysqldump -u ${ | for i in `${CFIND} * -type d`; do mysqldump -u ${MUSER} ${i} | ${CGZIP} -9 > ${BACKDIR}/${HOST}_${i}_${DATE}.sql.gz; done | ||
${CSCP} ${BACKDIR}/*_${DATE}.sql.gz ${BUSER}@${BSRV}:${DEST}/ | |||
${CFIND} ${BACKDIR}/*.sql.gz -ctime +${RETDAY} -type f -delete | |||
cd - | |||
</source> | </source> | ||
== Configuration du serveur MySQL == | |||
[[Category:SysAdmin]] | [[Category:SysAdmin]] |
Version du 18 avril 2012 à 21:10
Le présent article est actuellement en cours de rédaction ou de modification. Adressez-vous à la personne en charge pour toute proposition ou modification. |
Auteur / Editeur : Adadov |
Dernière édition : 18/04/2012 |
Introduction
On ne pense jamais assez aux sauvegardes et perdre les données d'un serveur peut vite devenir un énorme problème.
Donc j'ai mis en place un script de backup qui est capable à chaud de venir sauvegarder toutes les bases de données d'un serveur MySQL.
Il se base sur la liste des dossiers présents dans le répertoire de données de MySQL, ainsi il suffira de créer une nouvelle base de données pour qu'elle soit sauvegardée.
Script de backup
#!/bin/bash
MUSER='backup' # Nom d'utilisateur pour MySQL
BUSER='backup' # Nom d'utilisateur pour la connexion SSH au serveur de backup
BSRV='srv2' # Adresse ou non du serveur de backup
DEST='/backup' # Répertoire où envoyer le fichier sur le serveur de backup
DATE=`date +%y%m%d`
HOST=`hostname -s`
DATADIR='/var/lib/mysql'
BACKDIR='/backup'
CGZIP='/bin/gzip'
CFIND='/bin/find'
CSCP='/usr/bin/scp'
############################################
## RIEN A MODIFIER AU DELÀ DE CETTE LIGNE ##
############################################
cd $DATADIR
for i in `${CFIND} * -type d`; do mysqldump -u ${MUSER} ${i} | ${CGZIP} -9 > ${BACKDIR}/${HOST}_${i}_${DATE}.sql.gz; done
${CSCP} ${BACKDIR}/*_${DATE}.sql.gz ${BUSER}@${BSRV}:${DEST}/
${CFIND} ${BACKDIR}/*.sql.gz -ctime +${RETDAY} -type f -delete
cd -