Backup MySQL express

Le script ci dessous va créer un repertoire dbdump dans lequel un fichier .sql d'export de chaque base de données va être créer, ensuite l'ensemble est empaqueté pour être transférer sur un autre serveur distant via FTP. Le nom du fichier reprend le jour du mois afin de garder un historique important

#!/bin/sh
 
SERVEURFTP=SRVFTP5
USERFTP=USER5
MYOPTS=" -u root -pPASS "
MYSQL="mysql $MYOPTS"
MYDUMP="mysqldump $MYOPTS"
 
cd /home
wn=$(date +"%d")
fn="${wn}__dump"
if test -d dbdump; then rm -rf dbdump; fi

mkdir dbdump 

echo "show databases;" | $MYSQL | \
grep -v -e Database -e test | while read DB; do $MYDUMP $DB > dbdump/$DB.sql done tar cvf ${fn}.tar dbdump gzip -f $fn.tar ftp -n $SERVEURFTP <<FIN user $SERVEURFTP ***PASS FTP**** bin put ${fn}.tar.gz exit FIN

N'oubliez pas de mettre les droits 700 à votre script et de le stocker dans /etc/cron.daily pour une execution systématique et journalière (dans la nuit)

 

Votre avis : Backup MySQL express

  1. Gaston

    Un transfert en FTP ? Il serait beaucoup plus prudent de le faire a travers SSH en utilisant scp ou en FTPS.

    Je viens de découvrir ton blog et étant un utilisateur régulier de SEO Mioche tools, je voulais te remercier pour cet outil fantastique.

  2. Nicolas

    Rien n'est parfait :-) mais c'est noté express !!! :-)

    Et le risque est quand meme minime car on transfert d'un serveur à un autre, il n'y a pas de poste utilisateur dans la boucle, et si la communication peut être interceptée, il y a bien d'autre faiblesse alors sur l'install ou personne capable de toutes facons d'avoir accès à la machine source.