Aller au contenu principal

WinSCP - Synchroniser l'host et le serveur distant

Utilisez un script avec WinSCP pour synchroniser facilement des fichiers entre votre machine locale et un serveur FTP/SFTP distant. Découvrez les commandes pour une synchronisation locale, distante ou bidirectionnelle.

· 3 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.

WinSCP - Synchroniser l'host et le serveur distant

⚡
TL;DR

Cet article partage un script WinSCP qui synchronise un dossier local avec un serveur FTP/SFTP distant (ou l'inverse) via la commande synchronize, lancée avec winscp.com /script=.... Il explique les options de direction local/remote/both, pratiques pour des sauvegardes automatisées comme la synchronisation d'un dossier vers un NAS Synology.

Grâce à un script, il est possible de demander à WinSCP de synchroniser votre machine locale et votre machine distante : si un fichier est plus récent en local, il est copié vers le serveur distant, et inversement.

Si un fichier a été ajouté en local, il est copié vers le serveur distant, et vice versa.

J'utilise ce genre de script pour faire une sauvegarde complète de certains de mes dossiers vers mon Synology. Je l'ai aussi utilisé pendant des années pour déployer ce blog, avant de passer à GitHub Actions.

Deux autres scripts WinSCP sur ce blog : télécharger récursivement les fichiers ayant une extension précise et ouvrir une session WinSCP directement depuis KeePass.

Le script​

open ftp://USERNAME:PASSWORD@HOST_OR_IP:PORT/
option transfer ascii
lcd "C:\Christophe"
cd /Christophe
synchronize remote -preservetime -transfer=automatic -filemask="|.git/"
close
exit

Ce script FTP établit une connexion à un serveur distant, configure le mode de transfert en ASCII, navigue vers des répertoires spécifiques sur la machine locale et le serveur, puis synchronise les fichiers distants en excluant le dossier .git avant de fermer la connexion.

Comment l'utiliser​

  1. Enregistrez le script ci-dessus sous, par exemple, c:\temp\synchronize.txt
  2. Éditez le script et précisez :
    1. si nécessaire, remplacez ftp par sftp
    2. USERNAME : le nom d'utilisateur FTP
    3. PASSWORD : le mot de passe associé à ce compte
    4. HOST_OR_IP : le nom d'host FTP ou son IP
    5. PORT : le port à utiliser (21 pour une connexion FTP par exemple)
    6. Le dossier local où vos fichiers sont stockés (ligne lcd "C:\Christophe")
    7. Le dossier distant depuis lequel les fichiers doivent être copiés (ligne cd /Christophe), ça peut être la racine FTP ou n'importe quel sous-dossier
  3. Ouvrez une session DOS
  4. Lancez cd \temp
  5. Lancez winscp.com depuis là : tapez "c:\program files (x86)\WinSCP\WinSCP.com" /script="c:\temp\synchronize.txt"

Si tout est correctement configuré, WinSCP ouvrira un terminal de session et démarrera la synchronisation.

Plus d'infos​

Plus d'infos sur le verbe Synchronize de WinSCP : https://winscp.net/eng/docs/scriptcommand_synchronize.

  • Si les fichiers/dossiers sont déjà présents, ne rien faire.
  • S'il y a de nouveaux fichiers/dossiers, les copier.
  • Si des fichiers/dossiers ne sont plus sur le disque local, les supprimer du serveur distant.

Le local est donc le maître.

Local / Remote / Both​

Voyez la ligne synchronize remote.

Choisissez remote, local ou both :

  • Quand le premier paramètre est local, les changements des répertoires distants sont appliqués aux répertoires locaux.
  • Quand le premier paramètre est remote, les changements des répertoires locaux sont appliqués aux répertoires distants.
  • Quand le premier paramètre est both, les répertoires locaux et distants peuvent tous les deux être modifiés (source).

Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?