Articles - Logiciel & scripts

Sauvegarde site perso FREE (v2)

  |   3132  |   Commentaires (6)  |  Logiciel & scripts

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 :



Ce qui vous faut



Vous aurez besoin des logiciels tiers suivants :



Téléchargement



Les scripts modifiés sont disponibles à cette adresse :



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).