Próbuję pobrać folder ftp za pomocą klienta ftp z wiersza poleceń, ale do tej pory mogłem używać tylko polecenia „get”, aby uzyskać pojedyncze pliki.
Próbuję pobrać folder ftp za pomocą klienta ftp z wiersza poleceń, ale do tej pory mogłem używać tylko polecenia „get”, aby uzyskać pojedyncze pliki.
Odpowiedzi:
Możesz polegać na wget, który zwykle odpowiednio obsługuje ftp (przynajmniej z własnego doświadczenia). Na przykład:
wget -r ftp://user:pass@server.com/
Możesz także użyć -modpowiedniego do tworzenia kopii lustrzanych. Obecnie jest to równoważne z-r -N -l inf .
Jeśli masz jakieś znaki specjalne w szczegółach poświadczeń, możesz podać argumenty --useri --passwordargumenty, aby to zadziałało. Przykład niestandardowego logowania z określonymi znakami:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDYCJA
Jak wskazał @asmaier, uważaj, że nawet jeśli -rdotyczy rekurencji, ma domyślny maksymalny poziom 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Jeśli nie chcesz przegapić podkatalogów, lepiej skorzystaj z opcji dublowania -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 -rdomyślnie jest ograniczona do głębokości rekurencji wynoszącej 5.
--useri --passwordna Red Hat. Mój wget brzmi: GNU Wget 1.11.4 Red Hat modifiedzastanawiam się, czy to jest wersja, czy dystrybucja ...
-l 0, więc nie ma potrzeby używania tego, --mirrorco może mieć niepożądane skutki uboczne, takie jak pliki .listing
wget --ask-password -rl 99 ftp://user@server.com. W ten sposób hasło nie jest widoczne psi nie pozostaje w historii. Oczywiście z natury ftp jest wysyłany niezaszyfrowany na serwer.
$), np.--user='user' --password='pa$$word'
Tylko w celu uzupełnienia odpowiedzi udzielonej przez Thibaut Barrère.
użyłem
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Zwróć uwagę na podwójny ukośnik po nazwie serwera. Jeśli nie wstawię dodatkowego ukośnika, ścieżka jest względna do katalogu domowego użytkownika.
--ftp-user=USERi --ask-password.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOSTpo uruchomieniu ncftp…
wgeti szybszy również w trybie TAR. Dzięki!
Jeśli lftpjest zainstalowany na twoim komputerze, użyj mirror dir. I gotowe. Zobacz komentarz Ciro poniżej, jeśli chcesz rekurencyjnie pobrać katalog.
mirror -R dirczy rekursywne przesyłanie / aktualizacja katalogu
mirror ./do pobrania wszystkich plików i folderów rekurencyjnie w bieżącej ścieżce.
mirror, dla bieżącego katalogu i jego podfolderów.
Jeśli możesz użyć scpzamiast ftp, -ropcja zrobi to za Ciebie. Sprawdziłbym, czy możesz użyć bardziej nowoczesnego mechanizmu przesyłania plików niż FTP.
scpnadal będzie próbował użyć ssh, co nie będzie działać, jeśli masz tylko poświadczenia FTP. Czuje się dziwnie reaguje na komentarz z 2008 roku mówią technologię utknąłem ze nie jest nowoczesny :( Dobry stary 2008, zwróciłem się w dniu 18 ty pisał komentarz.
Zamiast tego użyj WGet. Obsługuje protokoły HTTP i FTP.
wget -r ftp://mydomain.com/mystuff
Powodzenia!
odniesienie: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Istnieje „ncftp”, który można zainstalować w systemie Linux. Działa na protokole FTP i może służyć do rekurencyjnego pobierania plików i folderów. działa na systemie Linux. Został użyty i działa dobrze w przypadku rekurencyjnego przesyłania folderów / plików.
Sprawdź ten link ... http://www.ncftp.com/
Jeśli możesz, zdecydowanie zalecam ci tari bzip(lub gzipcokolwiek, co płynie twoją łodzią) katalog na zdalnej maszynie - w przypadku katalogu o znacznych rozmiarach, oszczędność przepustowości prawdopodobnie będzie warta czasu na skompresowanie / rozpakowanie.
Nie powinieneś używać ftp. Jakby telnetnie korzystał z bezpiecznych protokołów, a hasła są przesyłane czystym tekstem. Dzięki temu osoby trzecie mogą bardzo łatwo przechwycić nazwę użytkownika i hasło.
Aby skopiować zdalne katalogi zdalnie, te opcje są lepsze:
rsyncjest najlepszym narzędziem, jeśli można się zalogować ssh, ponieważ kopiuje tylko różnice i może łatwo zrestartować się w środku w przypadku zerwania połączenia.
ssh -r jest drugą najlepszą opcją do rekurencyjnego kopiowania struktur katalogów.
Widzieć:
strona podręcznika rsync
strona podręcznika ssh
przełączać monit za pomocą polecenia PROMPT.
Stosowanie:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget, to wcale nie jest rekurencyjne. odpowiedź z 22 września 08 o 9:01 Thibaut Barrère jest łatwiejszy do zrozumienia, ale musi dodać opcję,-l 0jak wspomniano w komentarzach