Synology
: sauvegarder mon site web distant (Free) automatiquement
Introduction
:
Mise en place d'une sauvegarde automatique de mon site Web
Free
- Sauvegarde du contenu FTP (en mode synchronisation)
- Sauvegarde de la base de données (fichier sql compressé et archivé par date)
Les scripts s'appuient sur l'idée originale de Jean-Michel : Le
blog de Jean Michel
Vous trouverez sur son blog des informations qui vous permettrons
de modifier le script fourni sur cette page afin de réaliser une
sauvegarde à l'identique pour un site qui ne serait pas hébergé par
Free.
Prérequis
:
- savoir utiliser VI
- le module IPKG doit être installé
- le module Telnet ou SSH doit être activé sur le Syno
Installation
du module LFTP :
Afin de synchroniser mon contenu Web je peux utiliser le commande
"wget" pour récupérer l'entier du site distant. Toutefois,
cette commande va imposer un temps de copie extrèmement long. Afin
d'accélérer le traitement, je vais utiliser un outils qui permet
d'effectuer une synchronisation (comparaison source - destination) et
qui ne copiera que les modifications ou ajouts.
L'outils en question est LFTP.
Ouvrir une session Telnet sur Syno.
Se positionner sur : /volume1/@tmp cd /volume1/@tmp
Télécharger le module LFTP pour votre Syno dans le répertoire @tmp (Cf
sources IPKG : http://ipkg.nslu2-linux.org/feeds/optware/)
Pour le DS 207+ = lftp_3.7.0-1_arm.ipk
LFTP s'installe mais le programme déclare qu'il a besoin de plusieurs
dépendances pour pouvoir fonctionner. Notez les dépendances demandées
par le programmes et renouveller cette opération d'installation pour
chacunes d'entre elles.
Une fois les dépendances installées, LFTP est fonctionnel.
# dump de la base
sql free login=mon_login motDePasse=mon_mot_de_passe wget
http://sql.free.fr/backup.php
--post-data="login=$login&password=$motDePasse&check=1&all=1"
-O /volume1/sauvegarde/basesql/mabase.sql.gz
Script
final amélioré : ## Variables # Variable representant
le jour de la sauvegarde JOUR=`date
+%Y-%m-%d` #
Variable comportant le chemin du fichier journal LOG=/volume2/miroir/scripts/log # Variables pour
connexion Free login=mon_login motDePasse=mon_mot_de_passe
## Début du script echo
"---------------------------------------------------------------"
>> $LOG/journal.log echo
"---------------------------------------------------------------"
>> $LOG/journal.log echo "Nom de la
sauvegarde:"
FTP FREE >> $LOG/journal.log # On ecrit l heure
de debut dans le journal echo "Heure de
demarrage du transfert:" >> $LOG/journal.log date
>> $LOG/journal.log lftp
ftp://identifiant_du_site:mot_de_passe@ftpperso.free.fr -e "mirror -e /
/volume1/sauvegarde/sauvegarde-free ; quit" # On ecrit l'heure
de fin dans le journal echo "Heure de fin
du transfert:" >> $LOG/journal.log date
>> $LOG/journal.log echo
"---------------------------------------------------------------"
>> $LOG/journal.log
if [ -d
"/volume1/sauvegarde/basesql//$JOUR" ] then echo "Le
repertoire /volume1/sauvegarde/basesql//${JOUR} existe deja !"; else mkdir
/volume1/sauvegarde/basesql//$JOUR; fi touch
$LOG/journal.log echo "Nom de la
sauvegarde:"
DUMP SQL FREE >> $LOG/journal.log # On ecrit l heure
de debut dans le journal echo "Heure de
demarrage du transfert:" >> $LOG/journal.log date
>> $LOG/journal.log # dump de la base
sql free wget
http://sql.free.fr/backup.php
--post-data="login=$login&password=$motDePasse&check=1&all=1"
-O /volume1/sauvegarde/basesql//$JOUR/mabase.sql.gz # On ecrit l'heure
de fin dans le journal echo "Heure de fin
du transfert:" >> $LOG/journal.log date
>> $LOG/journal.log echo
"---------------------------------------------------------------"
>> $LOG/journal.log echo
"000000000000000000000000000000000000000000000000000000000000000"
>> $LOG/journal.log echo
"---------------------------------------------------------------"
>> $LOG/journal.log
Comme vous l'avez compris, le répertoire FTP est synchronisé, la base
sql est copiée chaque jour dans un dossier portant comme nom la date du
jour.
Mise
en place d'une planification dans la crontab:
vi /etc/crontab
#minute
hour mday
month wday
who command
0 1
* *
* root sh
/volume2/miroir/scripts/backup-free.sh
Pour toutes questions concernent ce srcipt, vous pouvez m'envoyer un email