Відповіді:
Ви можете розраховувати на wget, який зазвичай обробляє ftp отримати належним чином (принаймні, на мій власний досвід). Наприклад:
wget -r ftp://user:pass@server.com/
Ви також можете використовувати те, -m
що підходить для дзеркального відображення. Наразі це еквівалентно -r -N -l inf
.
Якщо у вас є якісь особливі символи в реквізитах даних, можна вказати --user
та --password
аргументи, щоб змусити його працювати. Приклад із спеціальним входом із конкретними символами:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
EDIT
Як зазначав @asmaier, слідкуйте за тим, що навіть якщо -r
це рекурсія, вона має максимальний максимальний рівень 5:
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Якщо ви не хочете пропускати підкаталоги, краще скористайтеся параметром дзеркального відображення -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
за замовчуванням обмежена глибиною рекурсії 5.
--user
і --password
надто Red Red Hat. Мій wget: GNU Wget 1.11.4 Red Hat modified
Цікаво, чи це версія версія чи річ
-l 0
, тому не потрібно використовувати --mirror
якісь небажані побічні ефекти, такі як .listing файли
wget --ask-password -rl 99 ftp://user@server.com
. Таким чином пароль не видно з ps
і не залишається в історії. Звичайно, за характером ftp він надсилається незашифрованим на сервер.
$
), наприклад--user='user' --password='pa$$word'
Тільки для доповнення відповіді, яку дав Тібаут Барре.
я використав
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Зверніть увагу на подвійну косу рису після імені сервера. Якщо я не ставлю додаткову косу рису, шлях відноситься до домашнього каталогу користувача.
--ftp-user=USER
і --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
після запуску ncftp…
wget
та швидший у режимі TAR. Дякую!
Якщо lftp
він встановлений на вашій машині, використовуйте mirror dir
. І ви закінчили. Дивіться коментар Ciro нижче, якщо ви хочете рекурсивно завантажувати каталог.
mirror -R dir
чи рекурсивне завантаження / оновлення каталогу
mirror ./
для завантаження всіх файлів і папок рекурсивно в поточному шляху.
mirror
для поточного каталогу та його підпапок.
Якщо ви можете використовувати scp
замість цього ftp
, -r
варіант зробить це за вас. Я хотів би перевірити, чи можна використовувати більш сучасний механізм передачі файлів, ніж FTP.
scp
все одно буде намагатися використовувати ssh, який не працюватиме, якщо у вас є лише FTP-дані. Здається, що я дивно реагую на коментар 2008 року, кажучи, що технологія, з якою я застряг, не сучасна :( Старий добрий 2008 рік, мені було 18 років, коли ви опублікували свій коментар.
Використовуйте замість WGet. Він підтримує протоколи HTTP та FTP.
wget -r ftp://mydomain.com/mystuff
Щасти!
довідка: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Існує 'ncftp', який доступний для установки в Linux. Це працює за протоколом FTP і може використовуватися для рекурсивного завантаження файлів і папок. працює на Linux. Використовується і працює нормально для рекурсивної передачі папок / файлів.
Перевірте це посилання ... http://www.ncftp.com/
Якщо ви можете, я настійно пропоную вам tar
і bzip
(або gzip
, що б не плавав ваш човен), каталог на віддаленій машині - для каталогу будь-якого значного розміру, економія пропускної здатності, ймовірно, буде вартим часу, щоб зібрати / розпакувати.
Не слід використовувати ftp
. Начебто telnet
це не використання захищених протоколів, а паролі передаються чітким текстом. Це робить третім сторонам дуже легко захопити ваше ім’я користувача та пароль.
Щоб скопіювати віддалені каталоги віддалено, кращі такі параметри:
rsync
є найкращим інструментом, якщо ви можете ввійти через систему ssh
, оскільки він копіює лише відмінності і може легко перезапустити посередині, якщо з’єднання перерветься.
ssh -r
є другим найкращим варіантом рекурсивного копіювання структур каталогів.
Подивитися:
перемикання підказки командою PROMPT.
Використання:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, це зовсім не рекурсивно. відповідь 22 вересня08 р. о 9:01 Thibaut Barrère легше зрозуміти, але потрібно додати варіант,-l 0
як згадується в коментарях