Müssen regelmäßig Daten von einem FTP-Server lokal synchronisiert werden, lässt sich das ziemlich elegant mit WinSCP erledigen. Dieses freie Tool unterstützt ein umfangreiches Scripting, was einem die Arbeit sehr erleichtert und die Synchronisation automatisch ablaufen lassen kann.
Voraussetzungen
- Windows 10
- WinSCP ist installiert
- FTP Serverdaten sind bekannt
Funktionsweise
- in der Scriptdatei, ftp-sync-to-local.txt, wird mit
open
– eine Verbindung zum FTP-Server aufgebautsynchronize
– die Methode zum Abgleich der Verzeichnisse angegebenlocal
– gibt die Synchronisationsrichtung vor- anschließend wird das lokale und das entfernte Verzeichnis angegeben
- die Scriptdatei wird über die Batch-Datei ftp-sync-to-local.bat aufgerufen
- die Batch-Datei kann über den Taskmanager von Windows automatisiert gestartet werden
Scriptdatei WinSCP für FTP
- ftp-sync-to-local.txt
# Resources https://winscp.net/eng/docs/ui_generateurl#script
# https://www.youtube.com/watch?v=ndvEYOQLc4c
option batch abort
option confirm off
open ftp://[username]:[password]@[ftp.server.de]/
synchronize local C:\temp\ftpdaten /[ftp-Verzeichnis]
exit
- für SFTP lautet die Serveranmeldung ähnlich diesem Eintrag
open sftp://[username]:[password]@[ftp.server.de]/ -hostkey="ssh-ed234569 165 yjhgJHGQO/YULX796867ptcEBGhfTTzghxyfJut/RY" -rawsettings FSProtocol=2
- am einfachsten lässt sich die korrekte Befehlszeile von WinSCP mit dem Tool Sitzungs- URL/-Code erzeugen auslesen(gilt auch für FTP-Verbindungen)
- dazu in WinSCP die Verbindung zum FTP-Server herstellen
- Sitzung -> Sitzungs- URL/-Code erzeugen -> Script -> Scriptdatei
Batch Datei zum Scriptaufruf
- ftp-sync-to-local.bat
"C:\Program Files (x86)\WinSCP\WinSCP.exe" /script=ftp-sync-to-local.txt
REM pause als Befehl für Ausgabekontrolle