backup mysql
Par krusaf le jeudi, février 8 2007, 00:00 - Releases - Lien permanent
Script de backup de base de donnée mysql avec historique sur plusieurs jours :
J'avais du créer le fichier .my.cnf lors de l'installation d'une application (mais je ne me rappelle plus laquelle). Donc je suis parti de ce fichier pour écrire mon script.
Le script de backup n'est pas très difficile à comprendre :
- On récupère les variables de connexion à la base de donnée
- On récupère la date qui permettra de nommer le futur fichier de backup
- On dump la bdd
- On trouve puis efface les fichiers trop vieux.
Le script permet ainsi de sauvegarder sa bdd de manière journalière (en écrivant une ligne dans le cron) tout en maitrisant l'espace disque. Vous pouvez modifier le script à votre guise en rajoutant une ligne pour compresser...
## Recupere info connection mysql
USER=$(awk -v arg=user -F '=' '($1==arg){ print $2 }' /root/.my.cnf)
HOST=$(awk -v arg=host -F '=' '($1==arg){ print $2 }' /root/.my.cnf)
PASS=$(awk -v arg=password -F '=' '($1==arg){ print $2 }' /root/.my.cnf)
DESTINATION="/repertoire/de/backup"
NB="28"
# Date
d=$(date "+%Y%m%d")
mysqldump -a -c --add-drop-table -h${HOST} -p${PASS} -u${USER} -A > ${DESTINATION}/${d}.sql
chmod 700 ${DESTINATION}/${d}.sql
# On garde nb jours de backup
find ${DESTINATION} -type f -mtime +${NB} | awk '{
if($1!="/" && $1!="/home" && $1!="/etc")
{
system("rm -f "$1);
}
}'
Le fichier /root/.cnf :
zeus:~/bkpmysql# cat /root/.my.cnf [client] host=localhost user=root password=********





visites
