Sauvegarde site perso FREE (v2)
Version pour Linux --> Voir la v3
Objectif
Je cherchais une petite solution pour sauvegarder le site sur lequel vous vous trouvez, et je l'ai trouvée ici :
http://syskb.com/sauvegarder-son-site-ftp-automatiquement-avec-winscp/
et ici aussi :
http://forums.phpbb-fr.com/documentation-phpbb3/sujet167850.html
J'ai repris les scripts de ces versions sur lesquels j'ai fait plusieurs modifications :
- L'ajout d'un fichier de log (traçabilité). Vérifier le bon déroulement de la sauvegarde.
- La récupération de la base de données.
- Quelques autres améliorations...
Avec la base et les fichiers zippés, vous avez tout en main pour redéployer votre site et réinjecter les données dans le SGDB Mysql de Free en cas de problème grave.
On peut aussi utiliser tout ça pour faire un "dump" et avoir la copie exacte de son site pour un autre site (miroir) ou sur son PC local pour faire des tests...
Comment se déroule le script ?
Le script se déroule en 3 PHASES :
- 1 - On récupère la base de données depuis la page backup de Free avec Wget.
- 2 - On récupère les fichiers désirés par protocole FTP avec WinSCP.
- 3 - On compresse les fichiers (ceux récupérés par protocole FTP avec WinSCP) dans un zip.
Chaque lancement du script se termine par 3 fichiers :
- un xxxx_files.zip contient tout ce qui a été aspiré du site (via WinSCP).
- un xxxx_sql.gz contient la base de données exportée (SQL).
- un xxxx_log.txt le fichier journal détaillé, vous trouverez un exemple tronqué dans le répertoire ci-dessous.
Ce qui vous faut
Vous aurez besoin des logiciels tiers suivants :
- Wget pour Windows (http://gnuwin32.sourceforge.net/packages/wget.htm)
- WinSCP
- 7Zip
- Windows Ressource Kit (Pour l'utilitaire 'tail.exe' qu'il contient)
Téléchargement
Les scripts modifiés sont disponibles à cette adresse :
- backup_ftp.bat.txt (extension à renommer)
- backup_ftp_script.txt
Personnalisation
Ces scripts sont à adapter pour chez vous, n'oubliez pas de modifier les point suivants :
- les valeurs "[IDENTIFIANT]" et "[MOT_DE_PASSE]", correspondant aux informations de votre compte chez free dans les 2 scripts (le .txt et le .bat) !
- les répertoires finaux des sauvegardes, chez moi "g:\" par défaut. A vous de décider où vous voulez conserver vos sauvegardes.
- les chemins d'emplacement des programmes tiers (Wget, WinSCP et 7Zip, Tail).
Quelques précisions
Une variante existe pour se passer de WinSCP et n'utiliser que WGET... (Voir liens plus haut).
Libre à vous de les améliorer à votre tour. Si vous trouvez des bugs n'hésitez pas à m'en informer.
Screenshots
Le CRON de Windows : la tâche planifiée associée à mon script :
Un aperçu du répertoire des sauvegardes :
Ici on peut voir 4 jeux de sauvegarde (une du 15 octobre, deux du 21 octobre et une du 8 novembre). De plus une sauvegarde est en cours (lancée le 9 novembre à 12h24) car le répertoire 'work' existe ainsi que les indices laissés par les 2 derniers fichiers de la liste.
Script en cours (on voit ici dans le titre de fenêtre que WinSCP tourne en arrière plan) :
Rappel : depuis la version 1.0d, une autre fenêtre s'ouvre pour visualiser le remplissage du log (avec tail.exe)...
Mon arborescence :
Historique des versions
Version 1.0e (du 12 juin 2012): Améliorations apportées
- Le zip ne plus contient le répertoire parent 'work' (répertoire de travail utilisé pour et par WinSCP).
- Correction d'un bug sur le calcul de l'heure de fin du script.
Version 1.0d (du 8 mars 2012) : Améliorations apportées
- Ajout de l'appel vers "tail.exe" pour suivre l'avancement en direct (remplissage du log). par contre la fenêtre du log reste ouverte à la fin...
- Simplification + documentation (commentaires) du code, toutes les informations à personnaliser sont au début du script batch.
Version 1.0c : Problèmes connus / améliorations à faire :
- Comme tout est redirigé dans le fichier de log : pas d'affichage à l'écran, il faut suivre le remplissage du fichier.
- Appels aux programmes tiers : mettre à jour et utiliser la variable PATH plutôt que les chemins en durs.
Limitations connues
- Les accents ne sont pas pris en compte dans le fichier de log, voila pourquoi tout est en anglais en sortie de mon script ! Mais les programmes tiers peuvent cracher en français, des erreurs d'encodage peuvent alors apparaitre.
- Ce script ne prévoit pas la rotation des sauvegardes et n'a aucune notion de durée de rétention, par conséquent c'est à vous de virer les jobs les plus anciens régulièrement pour ne pas saturer votre disque dur.
Conclusion
Ce script fonctionne bien chez moi, c'est mon petit serveur ORANGE qui s'occupe de cette sauvegarde tout seul dans son coin (Windows XP SP3).