Pour sauvegarder la base de données MySQL, on créer un fichier backupsql.sh dans le dossier /root
#!/bin/bash
#***********************************************************************#
# BACKUP MySQL repris de celui de DanSteph #
# —————— #
# Vous pouvez lancer ce script en cron tous les jours, il est #
# prévu pour un backup par jour #
# Attention à la taille de vos bases de données pour l’envois #
# des emails . #
# #
#***********************************************************************#
#***********************************************************************#
# TODO #
# Gestion des erreurs si échec #
# Fichier permettant de mettre directement ses BDD #
#***********************************************************************#
#***********************************************************************#
# PARAMETRES A EDITER
#***********************************************************************#
USER=”root” #Nom de superutilisateur MySQL
DBPASS=”pass” #Votre password superutilisateur
EMAIL=”votre_email@fai.com” #Votre email
#Envois d’un mail (attention ne pas mettre à 1 si JOINDB=1
MAILSEND=”0″
DBNAME1=”bdd1″ #Nom de vos bases de données
DBNAME2=”bdd2″ #Une nouvelle ligne par base
DBNAME3=”bdd3″ #
DBNAME4=”bdd5″ #
DBNAME5=”bdd5″ #
DATEFORMAT=`date +%d-%m` #Format de la fate pour le backup
#Sujet de mail que vous recevrez si MAILSEND ou JOINDB = 1
SUJETMAIL=”Backup $DATEFORMAT MySQL effectué”
COMPRESS=”1″ #Mettre “1″ pour zipper le backup
JOINDB=”1″ #Joindre par mail le Backup
#Mettez à 0 si vous souhaitez supprimer la copie local (Déconseillé)
KEEPLOCAL=”1″
#***********************************************************************#
# EDITION AVANCEE #
#***********************************************************************#
#Répertoire de backup (temporaire si KEEPLOCAL = 0
BACKUPDIR=”/backup/sql/”
#Sauvegarde des bases de données
#Rajoutez une ligne si vous avez plus de bases de données à sauvegarder
echo “Backup SQL commencé le `date`”
mysqldump –opt -u root -p$DBPASS $DBNAME1 > $BACKUPDIR/$DATEFORMAT-$DBNAME1.sql
echo “Base de données $DBNAME1 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME2 > $BACKUPDIR/$DATEFORMAT-$DBNAME2.sql
echo “Base de données $DBNAME2 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME3 > $BACKUPDIR/$DATEFORMAT-$DBNAME3.sql
echo “Base de données $DBNAME3 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME4 > $BACKUPDIR/$DATEFORMAT-$DBNAME4.sql
echo “Base de données $DBNAME4 sauvegardée”
mysqldump –opt -u root -p$DBPASS $DBNAME5 > $BACKUPDIR/$DATEFORMAT-$DBNAME5.sql
#***********************************************************************#
# FIN DES PARAMETRES A EDITER #
#***********************************************************************#
#Compression en Zip si COMPRESS est à 1 (Option obligatoire pour l’envois de la copie par mail.
if [ "$COMPRESS" = "1" ]
then
tar -vcf $DATEFORMAT-MySQL.tar $BACKUPDIR
rm $BACKUPDIR*
mv $DATEFORMAT-MySQL.tar $BACKUPDIR
echo “Backup SQL compressé effectué `date`”
fi
#Envois d’un email récapitulatif (Désactivé la variable MAILSEND si vous avez mis JOINDB à 1.
if [ "$MAILSEND" = "1" ]
then
echo -e “Backup MySQL effectué le `date`.\nLes Bases de données $DBNAME1, $DBNAME2, $DBNAME3, $DBNAME4, $DBNAME5 ont bien été sauvegardées.\nFichier $DATEFORMAT-MySQL.tar placé dans $BACKUPDIR” | mail -s “$SUJETMAIL” $EMAIL
fi
#Envois de votre sauvegarde par email (seulement si vous avez activé la compression par ZIP.
if [ "$JOINDB" = "1" ]
then
cd $BACKUPDIR
(echo -e “Backup MySQL effectué le `date`.\nLes Bases de données $DBNAME1, $DBNAME2, $DBNAME3, $DBNAME4, $DBNAME5 ont bien été sauvegardées.\nFichier $DATEFORMAT-MySQL.tar placé dans $BACKUPDIR”; uuencode $DATEFORMAT-MySQL.tar $DATEFORMAT-MySQL.tar) | mail -s “$SUJETMAIL” $EMAIL
fi
#Suppression de votre sauvegarde local si la variable KEEPLOCAL est = 0
if [ "$KEEPLOCAL" = "0" ]
then
rm $BACKUPDIR*
fi
echo “Backup terminé”
Ensuite on l’appelle avec une tache cron
Pour la sauvegarde de fichiers, on créer un fichier backup_file.sh dans le dossier /root :
#!/bin/bash
rsync -ave –delete /dossier_a_sauvegarder /backup/repertoire_de_sauvegarde/ && echo ’sauvegarde rsync finie’ | mail votre_email@fai.com
Et de même : execution avec une tache cron.
0 commentaires jusqu'à présent ↓
Il n'y a pas encore de commentaire… Donnez le coup d'envoi en complétant le formulaire ci-dessous.