Backup Mysql

Un script pour effectuer une sauvegarde des bases de données dans un répertoire dédié.
Les bases de données systèmes sont omises.
Il est possible de recevoir un mail contenant une synthèse succincte des bases sauvegardées , une fois le script exécuté.

Script de sauvegarde de base de données
#!/bin/sh # Definitions USER="root" PASSWORD="YOUR PASSWORD" VARIABLE=`date | awk -F' ' '{ print $1 " "$2" "$3" "$4 }'` echo $VARIABLE > date.txt sed -i e "s/\ /\_/g" date.txt REP="`cat date.txt`" # Creation du repertoire de sauvegarde mkdir -p /usr/home/BACKUP/`cat date.txt` && rm date.txt date.txte REP="/usr/home/BACKUP/"$REP # Creation du fichier log sur plusieurs lignes echo "============================================ Debut du script:" $0" Chemin de sauvegarde: " $REP" ============================================">> $REP/log.txt # On sauvegarde les bases sauf ... # Redirection du "Warning Using a password on ...." dans(error.log ou poubelle) mysql --user=${USER} --password="${PASSWORD}" 2> $REP/error.log -e "show databases;" > $REP/databases.tmp for i in $(cat $REP/databases.tmp); do if [ $i != "mysql" ] && [ $i != "performance_schema" ] && [ $i != "information_schema" ] && [ $i != "Database" ] && [ $i != "test" ] ; then # on compressse mysqldump --user=${USER} --password="${PASSWORD}" ${i} 2>/dev/null | gzip > $REP/${i}.`date "+%d-%m-%Y_-_%H-%M-%S"`.sql.gz; ## sans compression ## mysqldump --user=${USER} --password="${PASSWORD}" ${i} 2>/dev/null > $REP/${i}.`date "+%d-%m-%Y_-_%H-%M-%S"`.sql; echo "la base "${i}" est sauvegardée." >> $REP/log.txt fi done rm $REP/databases.tmp # On envoie le rapport propre! sed -e 's/é/e/g;s/û/u/g;s/è/e/g;s/à/a/g;s/ê/e/g;s/ç/c/g' < $REP/log.txt | mailx -s "Rapport de sauvegarde" "Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser."