Comment sauvegarder un site FTP automatiquement avec WinSCP

Je vous propose ici de mettre en place une solution de sauvegarde gratuite, simple et efficace de votre site FTP sur une station de travail de type Windows. Il vous sera alors possible de planifier l’exécution de la sauvegarde via une tâche planifiée ou de la lancer manuellement en double-cliquant sur un raccourci. Cette technique est très pratique pour sauvegarder votre thème et les fichiers de configuration de votre site web sous Wordpress, Joomla, Dotclear ou autre plateforme de publication.

Mise en place

Tout d’abord il est nécessaire d’installer ces 2 freewares : WinSCP pour télécharger le contenu de votre choix de votre serveur FTP / SFTP vers votre ordinateur et 7-Zip pour compresser et archiver ce contenu afin de le conserver comme sauvegarde par exemple.

Une fois l’installation terminée créez un répertoire C:\MesSauvegardes puis créez dans ce répertoire deux fichiers que vous allez nommer respectivement LaunchBackup.bat et backupscript.txt.

Comment sauvegarder son site FTP automatiquement sur sa machine avec winSCP , 7-ZIP

Le premier fichier LaunchBackup.bat est le fichier script principal en charge de lancer WinSCP et 7-zip. Vérifier que les chemins d’accès à WinSCP et 7-zip sont bien exact.

REM Mise en forme de la date et de l'heure afin de créer un TIMESTAMP
REM Le TIMESTAMP est une sorte d'étiquette que l'on ajoutera au nom
REM du répertoire de sauvegarde afin de le rendre "unique"
REM Une petite bidouille est nécessaire pour les heures inférieures à 10
REM Car elles ne contiennent qu'un seul chiffre

set hoffset=%time:~0,2%
if "%time:~0,1%"==" " set hoffset=0%time:~1,1%
set ddmmaa_hhmmss=%date:~0,2%%date:~3,2%%date:~6,4%_%hoffset%%time:~3,2%%time:~6,2%

REM On met en forme le futur nom de répertoire de sauvegarde
set backupdirectory=bck_%ddmmaa_hhmmss%

REM Maintenant on le créé
md %backupdirectory%

REM Et on rentre dedans afin qu'il soit répertoire actif
cd %backupdirectory%

REM On appelle notre scrip WINSCP nommé backupscript.txt
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /script:"c:\MesSauvegardes\backupscript.txt"

REM La copie est terminée, on peut sortir du répertoire en cours
cd..

REM Afin de le sauvegarder avec notre archiveur 7-ZIP
"c:\program files\7-Zip\7z.exe" a %backupdirectory%.zip %backupdirectory%

REM On peut maintenant supprimer le répertoire que l'on a copié
REM Car nous souhaitons uniquement conserver l'archive
rd /S /Q %backupdirectory%

Le second fichier backupscript.txt contient le code WinSCP appelé par LaunchBackup.bat. Il établit la connexion avec votre serveur précise le chemin ou récupérer le contenu désiré.

Copiez simplement le code suivant en prenant soin de mettre votre propre login, mot de passe et adresse de serveur. Pensez également spécifier la racine de l’arborescence à récupérer via la commande get.

# Début du script WinSCP
# Réponse automatique pendant l’exécution du script
# On sort en cas d’erreur
option batch on
option confirm off

# On se connecte à notre serveur en SSH
open sftp://login:motdepassesecret@adresseserveur

# On active le mode de transfert binaire
option transfer binary

# On télécharge l’arborescence de notre choix
# Qui sera stockée dans le répertoire actif définit dans le fichier BATCH
# Ici je télécharge le répertoire /site/images de mon serveur
get /site/images

# On se déconnecte
close

# Et on sort de WinSCP pour retourner dans le batch principal
exit

Démonstration du script de sauvegarde de FTP

Nous pouvons donc passer à l’exécution du script LaunchBackup.bat afin de tester le fonctionnement.

Vous pouvez ajouter l’instruction pause à la fin de LaunchBackup.bat afin de diagnostiquer une éventuelle erreur … les fautes de frappes sont monnaie courante en scripting …

Sauvegarder son site FTP avec WinSCP et 7-ZIP automatiquement. Idéal pour wordpress, joomla, dotclear et autres blogs

Tout semble bien se dérouler, si vous regarder dans C:\MesSauvegardes, les fichiers sont en cours de récupération dans un répertoire nommée bck_09042008_110657. Un TIMESTAMP a en effet été ajouté au nom du répertoire (09 Avril 2008 à 11h06m57s) afin d’identifier clairement la sauvegarde mais surtout de pouvoir conserver une multitude de versions de son site FTP.

Sauvegarder son site FTP avec WinSCP et 7-ZIP automatiquement. Idéal pour wordpress, joomla, dotclear et autres blogs

Une fois la rapatriement des fichiers effectuer, le script passe à la dernière étape qui consiste à archiver le répertoire avec 7-Zip puis supprimer l’original. Comme vous pouvez le constater il ne nous reste plus que l’archive.

Sauvegarder son site FTP avec WinSCP et 7-ZIP automatiquement. Idéal pour wordpress, joomla, dotclear et autres blogs

Vous pouvez maintenant créer un raccourci du fichier LaunchBackup.bat sur votre bureau ou votre barre de lancement rapide afin de lancer dès que vous le souhaitez votre sauvegarde.

De la même manière vous pouvez planifier une tâche Windows afin d’automatiser la sauvegarde de votre site FTP.

A vous de jouer !

22 commentaires sur “Comment sauvegarder un site FTP automatiquement avec WinSCP”

  1. Complément: Pour ceux qui n’ont pas la main sur leur serveur MAIS qui ont un logiciel zip sur leur serveur mutualisé ou non (et de l’espace), ils peuvent générer un fichier qui zip le dossier et ensuite il n’y a plus qu’à le télécharger.
    De la sorte, il n’y a plus qu’à appeler par exemple la page pour générer le zip et planifier son transfert

    Exemple de fichier trouvé à l’époque:
    https://www.developpez.net/forums/d1729877/php/langage/php-zip-recursif-partir-racine/

  2. Bonjour YS

    Excellente suggestion, c’est d’ailleurs ce que je fais sur SysKB pour répliquer les sauvegardes sur un VPS de secours.

    En revanche pour ceux qui n’ont pas la main sur le serveur parce qu’ils louent juste un espace Web je ne crois pas que cela soit possible. Seul l’accès FTP ou SFTP est actif.

    OC.

Laisser un commentaire