Ich versuche, einen Ordner mit dem Befehlszeilen-FTP-Client zu ftpen, aber bisher konnte ich nur 'get' verwenden, um einzelne Dateien abzurufen.
Ich versuche, einen Ordner mit dem Befehlszeilen-FTP-Client zu ftpen, aber bisher konnte ich nur 'get' verwenden, um einzelne Dateien abzurufen.
Antworten:
Sie können sich auf wget verlassen, das normalerweise mit FTP richtig umgeht (zumindest nach meiner eigenen Erfahrung). Zum Beispiel:
wget -r ftp://user:pass@server.com/
Sie können auch -m
die für die Spiegelung geeignete verwenden. Es ist derzeit gleichbedeutend mit -r -N -l inf
.
Wenn die Anmeldeinformationen einige Sonderzeichen enthalten, können Sie die Argumente --user
und angeben --password
, damit sie funktionieren. Beispiel mit benutzerdefiniertem Login mit bestimmten Zeichen:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
BEARBEITEN
Wie von @asmaier hervorgehoben, beachten Sie, dass selbst wenn -r
es sich um eine Rekursion handelt, die maximale Standardstufe 5 beträgt:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Wenn Sie keine Unterverzeichnisse verpassen möchten, verwenden Sie besser die Spiegelungsoption -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
wget -m
( --mirror
). wget -r
ist standardmäßig auf eine Rekursionstiefe von 5 begrenzt.
--user
und --password
auch auf Red Hat verwenden. Mein Wget ist: GNU Wget 1.11.4 Red Hat modified
Ich frage mich, ob es eine Version oder eine Distribution ist ...
-l 0
, sodass keine Verwendung --mirror
erforderlich ist, die unerwünschte Nebenwirkungen wie das Auflisten von Dateien haben kann
wget --ask-password -rl 99 ftp://user@server.com
. Auf diese Weise ist das Passwort bei nicht sichtbar ps
und bleibt nicht im Verlauf. Natürlich wird es von Natur aus unverschlüsselt an den Server gesendet.
$
) enthält, z. B.--user='user' --password='pa$$word'
Nur um die Antwort von Thibaut Barrère zu ergänzen.
ich benutzte
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Beachten Sie den doppelten Schrägstrich nach dem Servernamen. Wenn ich keinen zusätzlichen Schrägstrich setze, ist der Pfad relativ zum Home-Verzeichnis des Benutzers.
--ftp-user=USER
und verwenden --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
nach dem Start von ncftp…
wget
und auch schneller im TAR-Modus. Vielen Dank!
Wenn lftp
auf Ihrem Computer installiert ist, verwenden Sie mirror dir
. Und du bist fertig. Lesen Sie den Kommentar von Ciro unten, wenn Sie ein Verzeichnis rekursiv herunterladen möchten.
mirror -R dir
rekursives Verzeichnis hochladen / aktualisieren
mirror ./
zum rekursiven Herunterladen aller Dateien und Ordner im aktuellen Pfad verwendet werden.
mirror
aktuelle Verzeichnis und seine Unterordner eingeben.
Wenn Sie scp
anstelle von verwenden können ftp
, -r
erledigt die Option dies für Sie. Ich würde prüfen, ob Sie einen moderneren Dateiübertragungsmechanismus als FTP verwenden können.
scp
wird weiterhin versuchen, ssh zu verwenden, was nicht funktioniert, wenn Sie nur FTP-Anmeldeinformationen haben. Es fühlt sich komisch an, auf einen Kommentar aus dem Jahr 2008 zu antworten, der besagt, dass die Technologie, an der ich
Verwenden Sie stattdessen WGet. Es unterstützt HTTP- und FTP-Protokolle.
wget -r ftp://mydomain.com/mystuff
Viel Glück!
Referenz: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Es gibt 'ncftp', das für die Installation unter Linux verfügbar ist. Dies funktioniert mit dem FTP-Protokoll und kann zum rekursiven Herunterladen von Dateien und Ordnern verwendet werden. funktioniert unter Linux. Wurde verwendet und funktioniert gut für die rekursive Ordner- / Dateiübertragung.
Überprüfen Sie diesen Link ... http://www.ncftp.com/
Wenn Sie können, empfehle ich Ihnen tar
und bzip
(oder gzip
, was auch immer Ihr Boot schwimmt) dem Verzeichnis auf dem Remote-Computer dringend - für ein Verzeichnis von erheblicher Größe ist die Bandbreitenersparnis wahrscheinlich die Zeit zum Zip / Entpacken wert.
Sie sollten nicht verwenden ftp
. Als ob telnet
es keine sicheren Protokolle verwendet und Passwörter im Klartext übertragen werden. Dies macht es für Dritte sehr einfach, Ihren Benutzernamen und Ihr Passwort zu erfassen.
Um Remoteverzeichnisse remote zu kopieren, sind folgende Optionen besser:
rsync
ist das am besten geeignete Tool, wenn Sie sich über anmelden können ssh
, da es nur die Unterschiede kopiert und in der Mitte leicht neu gestartet werden kann, falls die Verbindung unterbrochen wird.
ssh -r
ist die zweitbeste Option zum rekursiven Kopieren von Verzeichnisstrukturen.
Sehen:
Schalten Sie die Eingabeaufforderung mit dem Befehl PROMPT um.
Verwendungszweck:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, es ist überhaupt nicht rekursiv. Antwort vom 22. September 08 um 9:01 Thibaut Barrère ist leichter zu verstehen, muss aber die Option hinzufügen,-l 0
wie in den Kommentaren erwähnt