it-swarm.com.de

Verwenden von wget zum rekursiven Herunterladen ganzer FTP-Verzeichnisse

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 TAREN. Die regelmäßige Verbindung zum alten Host über FTP bringt mich in den Ordner/home/admin.

Ich habe versucht, den folgenden Befehl von meinem neuen Server aus auszuführen:

wget -r ftp://username:[email protected]

Aber alles, was ich bekomme, ist eine zusammengestellte index.html-Datei.

Was ist die richtige Syntax für die rekursive Verwendung von wget über FTP?

97
user9406

Versuchen -m zum --mirror

wget -m ftp://username:[email protected]
129
Dave Cheney

Sie haben es richtig gemacht, Sie brauchen nur ein nachfolgendes * am Ende:

wget -r ftp://username:[email protected]/dir/*

Für gemeinsam genutzte Server können Sie Folgendes verwenden:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

Da die meisten gemeinsam genutzten Server einen FTP-Benutzernamen wie Benutzername @ Hostname haben, funktioniert der erste Befehl wget nicht und der zweite Befehl funktioniert einwandfrei.

39
Formoda

Neben wget können Sie im Skriptmodus auch lftp 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:

lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'

Es verarbeitet automatisch die Rekursion in Verzeichnisse und ermöglicht die Angabe des Remote-Quellstartverzeichnisses, von dem Daten heruntergeladen werden sollen.

7
zappan

Überprüfen Sie den folgenden Befehl wget, um Daten rekursiv von FTP herunterzuladen.

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r: Ist zum rekursiven Download.

-np: Ist für keinen Elternteil aufsteigend.

-nH: Deaktiviert die Erstellung eines Verzeichnisses mit dem gleichen Namen wie die URL, d. H. Abc.xyz.com

--cut-dirs: 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.

5
AVJ

Sie können 'curlftpfs - Mounten eines FTP-Hosts als lokales Verzeichnis' verwenden und nach dem Mounten normale Datei-Tools wie 'cp -r' verwenden.

5
chmeee

Verwenden Sie wegen der Rekursionstiefe -m anstelle von -r.

http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11

3
Bojan Hrnkas

Sollte funktionieren versuchen:

wget -r ftp://ftp:[email protected]/tst/
2
rkthkr

Verwenden:

wget -m ftp://192.168.0.1

und es werden alle Dateien und Ordner gespiegelt.

2
Rajat

Wie gesagt, wenn ich mich über FTP anmelde, gehe ich in den Ordner/home/admin. Die benötigten Dateien befinden sich in/var/www/html

Ich denke, das wird in Ihrem Fall funktionieren:

wget -r ftp://192.168.0.1/../../var/www/html
1
kubanczyk

Das ist die richtige Syntax. Ich bin mir nicht sicher, warum Sie nicht die erwarteten Ergebnisse erhalten.

Wie immer gibt es mehr als einen Weg, dies zu tun. Versuchen Sie ncftp, insbesondere ncftpget

1
goo

Ich kann verstehen, wenn Sie versuchen, dies in cron oder so etwas abzulegen, aber warum nicht einfach mit Ihrem normalen Client und mget * ftp auf den Server? Dies könnte ein schnellerer Weg zum Erfolg sein.

1
dr.pooter

Ich bin auf Windows-Hosting mit dem Benutzernamen als Brinkster/Benutzername gestoßen, daher würde wget einen Fehler auslösen, wenn Sie die Syntax verwenden:

wget -m ftp://brinkster/username:[email protected]

Um darüber hinwegzukommen, verwenden Sie

wget -m ftp://brinkster%2Fusername:[email protected]

Ich musste mich dem mit Windows Hosting @ Brinkster stellen.

0
Anto Joseph