Windows Azure
Ich suche nach einer Anwendung (oder einer anderen Lösung), die dynamisch eine bidirektionale Synchronisierung zwischen einer externen SFTP-Site und einem lokalen Speicher durchführt.
Konkret (serverorientiert gedacht) gibt es einen Import-Ordner und einen Export-Ordner.
Wenn also auf der Serverseite eine Änderung an einer Datei im Exportordner erfolgt (einschließlich Neu/Löschen), wird dies auf der Clientseite (innerhalb eines bestimmten Intervalls) widergespiegelt.
Und wenn auf der Clientseite eine Änderung an einer Datei im Importordner vorgenommen wird, wird dies auf ähnliche Weise auf der Serverseite widergespiegelt.
Ich nehme an, dass es notwendig sein könnte, dass diese App sowohl auf dem Client als auch auf dem Server vorhanden ist. Vielleicht handelt es sich um einen speziellen Typ von SFTP-Server.
Der spezielle Anwendungsfall betrifft mit Zeitstempeln benannte Dateien, die täglich archiviert werden (in einen mit Zeitstempeln benannten Archiv-Unterordner kopiert und dann aus dem primären Ordner gelöscht werden).
Besonderes Interesse gilt Cloud-Lösungen, beispielsweise für Azure.
Ich stelle fest, dass es immer noch viele herkömmliche DC-SFTP-Server gibt und die Anbieter nicht viel Flexibilität bieten (z. B. verwenden sie ein bestimmtes SFTP-Produkt und ändern es nicht). Am optimalsten wäre also eine App/Lösung, die mit einem vorhandenen älteren SFTP-Server koexistiert.
Antwort1
FTP Voyager erledigt dies. (Vorausgesetzt, es handelt sich um Windows, das haben Sie nicht gesagt) https://thwack.solarwinds.com/resources/b/geek-speak/posts/ftp-voyager-debuts-as-solarwinds-free-tool
Es wird als Dienst installiert und verfügt über einen Scheduler, um Verbindungsprofile für Sites zu erstellen und diese dann so zu planen, dass sie zu bestimmten Zeiten/in bestimmten Abständen Daten abrufen.
Es ist auch nicht schwer, den nativen Client von SFTP oder sogar PSFTP (Teil des Putty-Projekts) zu skripten. Die Syntax ist sehr ähnlich, wenn Sie mit FTP-Befehlen vertraut sind.https://www.puttygen.com/psftp
Insbesondere der Schalter -B, mit dem Sie im Grunde ein Skript mit Befehlen ausführen können, als wären Sie am Terminal, und das dann zu einer Aufgabe im Taskplaner machen
-B – It specifies a file with batch commands. The ‘-b’ command helps user automate tasks by allowing them to set commands in advance.
In beiden Fällen ist es bei der Synchronisierung von SFTP auf diese Weise nicht einmal erforderlich, dass der Server weiß, dass Sie es automatisieren, und schon gar nicht, dass er etwas installiert. Es macht einfach dasselbe, was ein Benutzer per Code tun würde. https://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html
Beispiel mit psftp: Erstellen Sie eine einfache Textdatei mit dem Namen dlall.txt
Angenommen, es gibt einen In-Queue-Ordner mit dem Namen „iQ“ und auf der anderen Seite ein Verzeichnis mit dem Namen „Out“, dann das folgende Skript …
lcd - Lokales Verzeichnis zu iQ ändern
cd out - wechselt zum Out-Verzeichnis auf der Remote-Seite
mget * – Abrufen mehrerer Dateien, lädt herunter, was vorhanden ist.
beenden - beendet
lcd .\iQ
cd out
mget *
quit
und geben Sie es dann wie folgt an PSFTP weiter
psftp user@host -P [port number] -b dlall.txt
Dies setzt voraus, dass Sie wissen, wie man eine Authentifizierung durchführt. Beide akzeptieren Anmeldeinformationen auf der Befehlszeile oder Sie können eine Pubkey-Authentifizierung einrichten. Ich schlage kein Passwort vor, da Sie zur Automatisierung ein Passwort irgendwo im Klartext speichern müssen. FtpVoyager speichert Passwörter, verschlüsselt sie aber zumindest. Beide funktionieren jedoch mit Pubkey viel sicherer.
Beachten Sie auch, dass Sie das Wort „Synchronisieren“ verwendet haben, wenn Sie sicherstellen möchten, dass beide Seiten tatsächlich gleich sind. Dies ist schwieriger und führt Sie wahrscheinlich zurück zu FTPVoyager
ODER prüfen Sie ggf. rsync über ssh, ob der Server dies unterstützt.