Ich schreibe ein Linux-Shell-Skript, um ein lokales Verzeichnis auf einen Remote-Server zu kopieren (und vorhandene Dateien zu entfernen).
Lokaler Server: ftp
und lftp
Befehle sind verfügbar, keine ncftp
oder grafische Werkzeuge.
Remote Server: nur über FTP erreichbar. Weder rsync noch SSH noch FXP.
Ich denke darüber nach, lokale und entfernte Dateien aufzulisten, um ein LFTP-Skript zu generieren und es dann auszuführen. Gibt es einen besseren Weg?
Hinweis: Das Hochladen nur geänderter Dateien ist von Vorteil, aber nicht erforderlich.
wput
(einen wget-ähnlichen FTP-Uploader):wput dir/ ftp://user:pass@host/dir
Antworten:
lftp sollte dies in einem Schritt tun können, insbesondere mit
lftp mirror
:BEARBEITEN: Die lftp-Befehlssyntax ist verwirrend, der ursprüngliche Aufruf, den ich gepostet habe, funktioniert nicht. Versuchen Sie es wie folgt:
Beachten Sie die Anführungszeichen um die Argumente für den
-e
Schalter.quelle
Basierend auf Phils Idee, den Spiegelmodus von lftp zu verwenden, führt dieser Befehl den folgenden Trick aus:
Ein Nachteil ist, dass auf dem lokalen Server ein FTP-Server ausgeführt werden muss.
quelle
Das hat bei mir geklappt, viele andere Versuche sind gescheitert. Einmal in LFTP, weitere Informationen erhalten Sie über:
quelle
mirror -R
hier zu verwenden .Endlich die Antwort !!! Erstellen Sie das Shell-Skript ftpmirror.sh
Wenn das lftp-Paket nicht installiert ist, installieren Sie es mit yum.
quelle