Mit WinSCP ist es ein leichtes Daten auszutauschen. Neben der einfachen Bedienung über die grafische Benutzeroberfläche ist vor allem die Möglichkeit mittels Skript Vorgänge zu automatisieren eine große Arbeitserleichterung.
Allerdings ist der Weg zu einem funktionierenden Skript nicht immer ganz einfach, da einem beispielsweise Sonderzeichen in Benutzernamen, Kennwörtern oder Pfaden die Sache schwer machen können, ebenso die genaue Reihenfolge von Befehlen und mehr.
Um schneller ans Ziel zu gelangen bietet es sich an, die eine oder andere Hilfestellung von WinSCP zu nutzen. Dieser Beitrag basiert auf der Aufgabe einen lokalen Ordner via WebDAV mit einem Ordner in einer ownCloud abzugleichen.
Um WinSCP mit einem Skript zu starten und die Ausgaben in Protokollen zu erfassen sieht der Aufruf wie folgt aus:
C:\WinSCP\WinSCP.com /script=script.txt /log=winscp.log > winscp-console.log
Die Konsolenausgabe kann interessant sein, da sie leichter zu lesen ist als das eigentliche Log, daher wird sie in diesem Fall ebenfalls erfasst.
Um relativ leicht ein Skript oder zumindest ein Grundgerüst erstellen zu können sind folgende Menüpunkte interessant:
Entweder aus dem Session/Connection Manager heraus oder nachdem eine Verbindung aufgebaut wurde nach einem Rechtsklick auf die Verbindung bzw. den Tab oder aus dem Menü “Tabs” “Generate session URL/code” anklicken. Auf der Registerkarte “Script” bekommt man so bereits ein Grundgerüst wie schon mal die Verbindung aufgebaut werden kann angezeigt:
open davs://<Benutzername>:<Kennwort>@<FQDN-oder-IP>/ # Your command 1 # Your command 2 exit # Execute the script using a command like: # "C:\WinSCP\WinSCP.exe" /log="C:\writable\path\to\log\WinSCP.log" /ini=nul /script="C:\path\to\script\script.txt"
Das wäre schonmal ein Anfang, allerdings funktioniert dies so leider nur in der GUI, versucht mit das Skript nun auszuführen erhält man ein
405 Method not allowed
Abhilfe schafft in diesem Beispiel, den “open”-Befehl wie folgt zu gestalten:
open davs://<Benutzername>:<Kennwort>@<FQDN-oder-IP>/remote.php/webdav/
Möchte man im weiteren Verlauf erfahren wie man lokal wie remote in die richtigen Verzeichnisse wechselt um anschließend weitere Aktionen ausführen zu können, bietet sich an ein-zwei Dateien für den Download auszuwählen, mit der rechten Maustaste anzuklicken und “Download” auszuwählen. In dem daraufhin erscheinenden Dialog kann man nach einem Klick auf den Pfeil nach unten bei “Transfer settings…” auf “Generate Transfer Code” klicken. So erhält man bereits ein gutes Skript:
open davs://<Benutzername>:<Kennwort>@<FQDN-oder-IP>/remote.php/webdav/ cd "<Lokaler Ordner>" lcd "<Remote-Ordner>" get * exit # Execute the script using a command like: # "C:\WinSCP\WinSCP.exe" /log="C:\writable\path\to\log\WinSCP.log" /ini=nul /script="C:\path\to\script\script.txt"
Wie man sieht wurde hier bereits die erste Zeile angepasst. Statt “get *” für den Download kann man beispielsweise eine Synchronisation einrichten:
synchronize local -resumesupport=on -delete
Quellen
WinSCP – Documentation – Using WinSCP – Generate Session URL/Code/Transfer Code Dialog
WinSCP – Documentation – Using WinSCP – Transfer Options Dialog
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Schreibe einen Kommentar