Zweiwegesynchronisation in WinSCP

439
user308485

Ich bin in einer SSH-Sitzung mit einem Remote-Computer, der WinSCP verwendet. Ich möchte, dass WinSCP eine Datei auf meinem lokalen Computer verfolgt, nennen Sie es test.cpp. Das heißt, immer wenn diese Datei auf meinem lokalen Rechner aktualisiert wird, sollte die Änderung automatisch auf dem Remote-Rechner vorgenommen werden.

Gleichzeitig möchte ich, dass WinSCP eine Datei auf der Fernbedienung nachverfolgt, diese out.txtso nennt, dass Änderungen an dieser Datei auf der Fernbedienung auf meinem eigenen Computer angezeigt werden.

Wie kann ich beides gleichzeitig erreichen? Ich möchte, dass die erste Datei in eine Richtung verfolgt wird und die andere in die andere Richtung, aber keine der beiden Dateien sollte in beiden Richtungen verfolgt werden.

2
WinSCP ist das falsche Werkzeug für diesen Job. Wenn Sie UNIX / Linux verwenden und keine wörtliche sofortige Synchronisierung benötigen (z. B. das Synchronisieren nach einem Zeitplan ist in Ordnung), prüfen Sie `rsync`. LawrenceC vor 5 Jahren 0
Eigentlich suche ich eine sofortige Synchronisation. Mein lokaler Computer ist auch Windows (die Fernbedienung ist Ubuntu). user308485 vor 5 Jahren 0
Es gibt rsync für Windows (viele UNIX / Linux-Dienstprogramme haben Windows-Versionen) - leicht zu finden mit Suche. Wenn Sie eine sofortige Synchronisierung ohne wiederholtes Abfragen wünschen, benötigen Sie wahrscheinlich ein spezielles Werkzeug (ich kann mir nicht eines vorstellen, das nur für diesen Zweck entwickelt wurde) oder einen Samba-Server auf der Ubuntu-Seite einrichten und Windows für den Zugriff auf die Samba-Freigabe verwenden. LawrenceC vor 5 Jahren 0

1 Antwort auf die Frage

0
Martin Prikryl

Erstellen Sie einfach eine Batchdatei, die in einer Schleife ausgeführt wird und put -neweronlyfür test.cppund get -neweronlyfür Folgendes ausgeführt wird out:

@echo off :loop winscp.com /ini=nul /command ^ "open sftp://username:password@example.com/ -hostkey=""ssh-rsa 2048 ...""" ^ "put -neweronly C:\local\path\test.cpp /remote/path/*" ^ "get -neweronly /remote/path/out C:\local\path\*" ^ "exit" timeout /t 30 goto loop 

( WinSCP GUI kann eine Batch-Datei-Vorlage für Sie generieren. )


Wenn Sie die Verbindung offen halten möchten (nicht bei jeder Iteration erneut verbinden), verwenden Sie die WinSCP .NET-Assembly besser über ein PowerShell-Skript .

Ein Beispiel finden Sie unter Lokales Verzeichnis auf dem neuesten Stand halten (geänderte Dateien vom Remote-SFTP / FTP-Server herunterladen) .