Je cherchais depuis quelques temps une solution, libre de préférence ou tout du moins gratuite, pour effectuer la sauvegarde en ligne de mon dossier de données perso.
J'ai environ 25 go de données en constante augmentation et ue ligne ADSL limitée, il me fallait donc impérativement une solution qui puisse faire une sauvegarde différentielle, comme le fait très bien Robocopy en local, le tout devant tourner sous Windows.
J'ai donc lancé quelques tests sur plusieurs utilitaires pouvant synchroniser des fichiers via FTP :
- Syncback SE : fonctionne plutôt bien pour faire de la sauvegarde vers FTP, jusqu'au jour où je me suis aperçu qu'il modifiait en local les dates des fichiers pour permettre de retrouver les fichiers modifiés => Exit SyncBack
- Cobian backup : je n'ai pas réussi à faire du différentiel.
j'ai ensuite testé les solutions de backup en ligne, mais je n'ai pas non plus trouvé mon bonheur (trop cher, trop lent ou trop limité,...)
Voyant que le FTP risquait de me limiter, je me suis ensuite tourné vers les solutions utilisant le SFTP ( je disposais déjà chez OVH d'un hébergement mutualisé de 100 Go accessible par SFTP pour 4 ou 5 €/mois).
J'ai testé RSync pour Windows. Ca fonctionnait bien mais ce n'était pas très stable et en cas de coupure de la connexion, il fallait reprendre de zero.
J'ai alors trouvé la solution au travers de l'utilitaire Open Source WinSCP que j'utilisais déjà pour accéder à des machines Linux. Un petit script là dessus et c'était bon.
Voyons voir comment procéder :
1/ Installation
Rien de plus simple :
- Créez un dossier WinSCP quelque part sur votre disque.
-
Dans ce dossier, créez les sous-dossiers suivants :
- bin
- inc
- log
- Téléchargez la version portable de WinSCP 5 (la 4 gère mal les accents dans les noms de fichier) : http://winscp.net/eng/download.php.
- Décompressez l'archive et copiez le fichier winscp.exe dans le dossier bin.
2/ Paramétrage
- Lancez le fichier wiscp.exe et configurez une nouvelle connexion (il faut bien enregistrer le mot de passe).
-
Donnez à cette configuration un nom explicite et sans caractères spéciaux :
-
Configurez le script WinSCP pour le backup :
Créez un fichier backup.script dans le dossier inc et insérez le contenu suivant (en l'adaptant à vos chemins):
option batch on option confirm off open <nom de la session précedemment créée> option transfer binary synchronize remote <D:\dossier-local> </home/fred/dossier-distant> -delete -criteria=size close exit
- Créez à la racine du dossier le fichier backup.bat et insérez le contenu suivant :
@echo off del log\synchro.log bin\winscp.exe /console /script=inc\backup.script /log=log\backup.log
3/ Lancement de la sauvegarde
Il suffit de lancer le fichier backup.bat.
En cas de problème, consultez le fichier log/backup.log.
La synchro initiale va être très longue, mais les suivantes ne prendront en compte que les fichiers modifiés depuis le dernier lancement et sera beaucou plus rapide.
WinSCP, en cas de coupure de connexion reprend là où il s'était arrêté.
Conclusion
Cette solution fonctionne tellement bien chez moi que je l'utilise désormais au travail pour faire des backup distants sur des serveurs qui comportent plusieurs millions de fichiers répartis sur plus de 150 Go (il a fallu plus d'une semaine pour la synchro initiale entre les 2 hébergeurs, mais maintenant quelques heures suffisent toutes les semaines).
Commentaires