Übertragen Sie Dateien zwischen zwei FTP-Servern

Übertragen Sie Dateien zwischen zwei FTP-Servern

Ich habe zwei Webhosting-Pakete: Ein Paket (A) von Hoster A und ein Paket (B) von einem anderen Hoster B (unterschiedliche Netzwerke). Ich kann Dateien von meinem lokalen Computer per FTP auf das Webhosting-Paket A und / oder das Webhosting-Paket B übertragen.

Nun möchte ich Ordner und Dateien direkt von Hoster A zu Hoster B übertragen. Ich habe es mit FXP versucht, aber Hoster A und Hoster B haben es nicht zugelassen (500 Illegal PORT Command). Ich kann die Einstellungen nicht ändern, um FXP zuzulassen (es ist ein normales Webhosting-Paket, daher habe ich keinen SSH-/Root-Zugriff oder ähnliches).

Ich weiß, dass ich einen FTP-Client auf meiner lokalen Maschine (privater Computer) verwenden könnte, um den Inhalt von Hoster A herunterzuladen und ihn manuell erneut auf Hoster B hochzuladen, aber das würde lange dauern (große Datenmengen – viele Dateien).

Ich glaube nicht, dass es eine Möglichkeit gibt, die Dateien ohne "Hilfe" direkt von A nach B zu übertragen, aber ich habe auch einen Linux-Root-Server C (von Hoster C). Gibt es eine Möglichkeit, die Dateien mit meinem Server C zu übertragen (ein Skript, ein Programm, einen Workflow usw.)? Beispielsweise das Herunterladen von file1.txt von Paket A per FTP auf Server C, das Hochladen von Server C in Paket B, das Löschen auf Server C, das Herunterladen der nächsten Datei file2.txt und so weiter?

Antwort1

Verwendencurlftpfsauf Ihrem Linux-Server C.

Das Programm curlftpfsist ein Tool zum Mounten von Remote-FTP-Hosts als lokale Verzeichnisse.

Das ist einSICHERUNG-basierte Lösung, machen Sie sich vertraut mitSicherheitsbedenken. Sie können (und sollten) die Montage als normaler Benutzer durchführen. Beispiel:

curlftpfs -r ftp.dd-wrt.com ~/mnt/foo/

Mounten Sie A und B an verschiedenen Mountpunkten. Verwenden Sie dann ein beliebiges Tool zum Kopieren/Verschieben von Dateien, wie Sie es mit lokalen Dateien tun würden: cp -r, mc, was auch immer. Hängen Sie sie schließlich aus. Ein Beispielbefehl zum Aushängen:

fusermount -u ~/mnt/foo/

Antwort2

Nach viel Recherche und Ausprobieren habe ich mich entschlossen, mein eigenes Skript zum Übertragen von Dateien zwischen zwei FTP-Servern Aund Büber einen Root-Server zu schreiben C.

Es wurde veröffentlicht amGitHub alsFTP-Server-Dateien verschieben. Es befindet sich derzeit in einem frühen Entwicklungsstadium, hilft aber dabei, den normalerweise beschriebenen Arbeitsablauf über eine private Maschine zu vermeiden.

verwandte Informationen