On continue les article sur la sauvegarde avec rSnapshot, ici comment sauvegarder un blog Free.fr.
rSnapshot est capable d’éxécuter un script dans un répétoire temporaire qu’il crée puis ensuite de sauvegarder tout le contenu de ce répertoire temporaire.
Pour sauvegarder un site Internet il faut donc créer un script qui va copier dans un répertoire tout ce qui fait le site (base de donnée et fichiers)
Pour faire une sauvegarde de la base de donnée (on parle de dump SQL), Free ne met pas à disposition l’outil mysqldump qui est communément utilisé pour sauvegarder une base MySQL, mais il existe une page php qui réalise ce dump et renvoi l’archive le contenant.
Cette page est accessible à l’adresse suivante :
Pour mon script je me suis très fortement inspiré du script proposé ici :
Que j’ai purgé de toute la gestion des répertoires (géré par rSnapshot) et de la sauvegarde SQL par mysqldump.
#!/bin/bash # Version 0.4 : Adaptation du script <a href="http://doc.ubuntu-fr.org/sauvegarder_un_site">http://doc.ubuntu-fr.org/sauvegarder_un_site</a> # pour rsnapshot et free.fr exclusivement # FONCTIONNALITÉS : # - Sauvegarde des fichiers distants via FTP # - Sauvegarde des bases de données MySQL distantes via <a href="http://sql.free.fr/backup.php">http://sql.free.fr/backup.php</a> pour les sites perso de free # - Sauvegarde de plusieurs sites #Variables à renseigner sav_complete_tous_les="1 month" # refaire une sauvegarde complete et archiver les anciennes tous les ... (ex1 : 2 month) (ex2 : 30 day) (ex3: 12 hour) rep_log=$HOME/Sauvegardes/internet # répertoire où les fichiers .log seront stockés #copiez collez le bloc en modifiant le numéro entre crochets, dans l'ordre [0] puis [1], ... en fonction du nombre de sites à sauver # Début du bloc à paramétrer nom_du_site[0]=voidandany.free.fr # Nom du site internet (juste pour info) serveur_ftp[0]=ftpperso.free.fr # adresse du serveur ftp utilisateur_ftp[0]=xxx # utilisateur ftp mdp_ftp[0]=xxx # mot de passe ftp liste_rep_ftp[0]="/" # liste de répertoires sur le serveur ftp à sauvegarder, séparés par des espaces. Mettre simplement / pour sauver le site en entier. Dans tous les cas l'adresse doit commencer par /. Garder les guillemets serveur_sql[0]=sql.free.fr # adresse du serveur mysql utilisateur_sql[0]=xxx # utilisateur mysql mdp_sql[0]=xxx # mot de passe mysql # Fin du bloc à paramétrer sauver(){ #Sauvegarde des fichiers via FTP mkdir BDD mkdir Fichiers #Sauvegarde de la base MySQL via mysqldump echo echo Sauvegarde SQL de ${nom_du_site[$i]} echo wget http://sql.free.fr/backup.php --post-data="login=${utilisateur_sql[$i]}&password=${mdp_sql[$i]}&check=1&all=1" -O BDD/$(date +%F_%H-%M-%S).sql.gz echo echo Sauvegarde FTP de ${nom_du_site[$i]} echo for rep_ftp in ${liste_rep_ftp[$i]}; do lftp ftp://${utilisateur_ftp[$i]}:${mdp_ftp[$i]}@${serveur_ftp[$i]} -e "mirror -e ${rep_ftp} ./Fichiers ; quit" done } date_debut_script="le $(date +%F) à $(date +%H:%M:%S)" # On fait toutes les sauvegardes len=${#nom_du_site[*]} i=0 while [ "$i" -lt "$len" ] do sauver let "i = $i + 1" done echo La sauvegarde des sites internet a commencée $date_debut_script et s\'est terminée le $(date +%F) à $(date +%H:%M:%S) exit 0
Reste à paramétrer le fichier de configuration de rSnapshot en y ajoutant la ligne :
backup_script /home/svc/bin/backupBlog.sh blog
Ce script utilise la commande lftp, il faudra donc au préalable avoir installé le paquet correspondant :
sudo aptitude install lftp
Et votre blog Free sera sauvegardé tous les jours…
Sources :
sauvegarder_un_site – Documentation Ubuntu Francophone
Sauvegarder automatiquement sa base de données chez free – [Le blog de l'informatique]