Ich möchte alle Dateien und Ordner von einem Host auf einen anderen kopieren. Die Dateien auf dem alten Host befinden sich unter / var / www / html. Ich habe nur FTP-Zugriff auf diesen Server und kann nicht alle Dateien tarieren. Eine regelmäßige Verbindung zum alten Host über FTP bringt mich zum Ordner / home / admin.
Ich habe versucht, den folgenden Befehl von meinem neuen Server auszuführen:
wget -r ftp://username:[email protected]
Aber alles, was ich bekomme, ist eine zusammengesetzte Datei index.html.
Was ist die richtige Syntax für die Verwendung von wget rekursiv über FTP?
Antworten:
Versuchen Sie es
-m
für--mirror
quelle
--ask-password
, um zu verhindern, dass das Kennwort gespeichert wirdhistory
.wget -m ftp://username:[email protected]/mydir/
Du hast es richtig gemacht, du brauchst nur ein * am Ende:
Für gemeinsam genutzte Server können Sie Folgendes verwenden:
Da die meisten gemeinsam genutzten Server einen FTP-Benutzernamen haben, der etwa "Benutzername @ Hostname" entspricht, funktioniert der erste Befehl wget nicht und der zweite Befehl funktioniert einwandfrei.
quelle
-m
oder verwenden,-r -l inf
da -r standardmäßig eine Rekursionstiefe von 5 hat. Siehe gnu.org/software/wget/manual/…Neben wget können Sie auch lftp im Skriptmodus verwenden. Der folgende Befehl spiegelt den Inhalt eines bestimmten Remote-FTP-Verzeichnisses in das angegebene lokale Verzeichnis und kann in den Cron-Job eingefügt werden:
Es verarbeitet automatisch die Rekursion in Verzeichnisse und ermöglicht die Angabe des Remote-Quellstartverzeichnisses zum Herunterladen von Daten von.
quelle
Sie können 'curlftpfs - Mounten eines FTP-Hosts als lokales Verzeichnis' verwenden und nach dem Mounten normale Datei-Tools wie 'cp -r' verwenden.
quelle
curlftpfs
hat große Performance-Probleme imlibcurl3-gnutls
Aktivieren Sie den Befehl wget unten, um Daten rekursiv von FTP herunterzuladen.
-r
: Ist für den rekursiven Download.-np
: Ist für keine Eltern aufsteigend.-nH
: Dient zum Deaktivieren der Erstellung eines Verzeichnisses mit dem gleichen Namen wie die URL, dh abc.xyz.com--cut-dirs
: Dient zum Ignorieren der Anzahl der übergeordneten Verzeichnisse. Der Wert dieser Option unterscheidet sich für Ihren Befehl.Sie können dies überprüfen, indem Sie den obigen Befehl ausführen.
quelle
Verwenden Sie aufgrund der Rekursionstiefe -m anstelle von -r.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
quelle
Sollte funktionieren versuchen:
quelle
Verwenden:
und es werden alle Dateien und Ordner gespiegelt.
quelle
Das ist die richtige Syntax. Nicht sicher, warum Sie nicht die erwarteten Ergebnisse erzielen.
Wie immer gibt es mehr als eine Möglichkeit, dies zu tun. Versuchen Sie ncftp, insbesondere ncftpget
quelle
Ich kann verstehen, wenn Sie versuchen, dies in cron oder so etwas zu speichern, aber warum nicht einfach mit Ihrem normalen Client und mget * in den Server ftp? Dies könnte ein schnellerer Weg zum Erfolg sein.
quelle
Ich denke, das wird in Ihrem Fall funktionieren:
quelle
Ich bin auf Windows-Hosting mit dem Benutzernamen brinkster / username gestoßen, daher würde wget einen Fehler auslösen, wenn Sie die folgende Syntax verwenden:
Um darüber hinwegzukommen, verwenden Sie
Ich musste mich mit Windows Hosting @ Brinkster auseinandersetzen.
quelle
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
erledigen die Arbeit oder Sie können * anstelle von Dateiname eingeben: lässt wget an Port denken, der in Ihrem Fall ungültig ist.quelle