Pages Menu
TwitterRss
Categories Menu

Posted on 11 Juin, 2009 in Linux, Sécurité |

Sauvegarde automatisée des bases mysql et des fichier de conf importants.

#!/bin/bash

 
#paramètres de configuration du script
#completer ici par le nom d'un utilisateur autorisé à dumper toutes vos bases :
strMysqlUser=""
#completer ici par le mot de passe de cet utilisateur :
strPassword=""
# completer ici par le chemin vers le repertoire de travail où va se trouver le dump
# il est possible de préfixer le répertoire :
# "/rep/de/travail/prefix_" donnera alors /rep/de/travail/prefix_20070505
repTravail=""
 
 
#mémorisation de la date du jour et de la date d'il y a 7 jours
dateActuelle=$(date +%Y%m%d)
datePassee=$(date --date '7 days ago' +%Y%m%d)
 
#Suppression de la sauvegarde d'il y a 7 jours
echo "["$(date +%F %X)"] Suppression des dump du "$datePassee
repTravailPasse=$repTravail$datePassee
rm -R $repTravailPasse
 
# début du dump
echo "["$(date +%F %X)"] Dump du : "$dateActuelle
repTravailActuel=$repTravail$dateActuelle
mkdir $repTravailActuel
# récupération de la liste des bdd, "tail -n +2" est présent pour ne pas récupérer le titre "Databases" renvoyé par mysql
listDatabase=$(mysql --user=$strMysqlUser --password=$strPassword --exec="SHOW DATABASES;" | tail -n +2)
 
#dump de chaque base dans un fichier
for lineDatabase in $listDatabase
do
echo "["$(date +%F %X)"] Debut du dump de la base "$lineDatabase" vers "$repTravailActuel
mysqldump --user="$strMysqlUser" --password="$strPassword" "$lineDatabase" | gzip > "$repTravailActuel"/"$lineDatabase".sql.gz
echo "["$(date +%F %X)"] Dump compressé dans "$repTravailActuel"/"$lineDatabase".sql.gz"
done
echo "["$(date +%F %X)"] Fin de la sauvegarde"
exit 0