Использование wget для рекурсивной загрузки всех FTP-каталогов

Я хочу скопировать все файлы и папки с одного хоста на другой. Файлы на старом хосте сидят в /var /www /html, и у меня есть только FTP-доступ к этому серверу, и я не могу TAR всех файлов. Регулярное соединение со старым хостом через FTP приводит меня в папку /home /admin.

Я попробовал запустить следующую команду из моего нового сервера:

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

Но все, что я получаю, это сделанный файл index.html.

Какой правильный синтаксис для использования wget рекурсивно по FTP?

86 голосов | спросил user9406 13 J0000006Europe/Moscow 2009, 13:21:45

13 ответов


119

Попробуйте -m для --mirror

wget -m ftp://username:[email protected]
ответил Dave Cheney 13 J0000006Europe/Moscow 2009, 14:04:12
34

У вас все в порядке, вам просто нужно иметь конец * в конце:

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

Для общих серверов вы можете использовать следующее:

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

Поскольку у большинства общих серверов есть ftp-username что-то вроде имени пользователя @ hostname, поэтому первая команда wget не работает, а вторая команда отлично работает.

ответил 22 J0000006Europe/Moscow 2009, 16:35:38
6

Помимо wget, вы также можете использовать lftp в режиме сценария. Следующая команда будет отражать содержимое заданного удаленного FTP-каталога в данном локальном каталоге и может быть помещена в задание cron:

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

Он автоматически обрабатывает рекурсию в директории и позволяет указать исходный исходный каталог удаленного источника для загрузки данных.

ответил zappan 13 J0000006Europe/Moscow 2009, 22:04:48
5

Вы можете использовать 'curlftpfs - монтировать ftp-хост в качестве локального каталога', и после установки вы можете использовать обычные файловые инструменты, такие как 'cp -r'.

ответил chmeee 14 J0000006Europe/Moscow 2009, 01:22:11
4

Проверьте приведенную ниже команду wget для рекурсивной загрузки данных с FTP.

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

-r: для рекурсивной загрузки.

-np: нет родительского восходящего.

-nH: для отключения создания каталога, имеющего имя, такое же, как URL, например, abc.xyz.com

--cut-dirs: Это для игнорирования числа родительских каталогов. Значение этой опции будет отличаться для вашей команды.

Вы можете проверить, выполнив приведенную выше команду.

ответил AVJ 24 J000000Friday15 2015, 07:48:08
3

Используйте -m вместо -r, из-за глубины рекурсии.

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

ответил Bojan Hrnkas 17 J0000006Europe/Moscow 2013, 15:56:11
2

Если попытка работы:

wget -r ftp://ftp:[email protected]/tst/
ответил rkthkr 13 J0000006Europe/Moscow 2009, 13:54:57
2

Использование:

wget -m ftp://192.168.0.1

, и он отобразит все файлы и папки.

ответил Rajat 13 J0000006Europe/Moscow 2009, 18:07:41
1

Это правильный синтаксис. Не знаете, почему вы не получаете ожидаемых результатов.

Как всегда, существует несколько способов сделать это. Попробуйте ncftp, в частности ncftpget

ответил goo 13 J0000006Europe/Moscow 2009, 13:27:22
1

Я могу понять, пытаетесь ли вы сбрасывать это в cron или что-то в этом роде, но почему бы не просто ftp на сервере с вашим обычным клиентом и mget *? Это может быть более быстрый путь к успеху.

ответил dr.pooter 13 J0000006Europe/Moscow 2009, 17:37:34
1
  

Как я уже сказал, вход в систему через FTP   приводит меня в папку /home /admin,   и файлы, в которых я нуждаюсь, находятся в   /Вар /WWW /HTML

Я думаю, что это будет работать в вашем случае:

wget -r ftp://192.168.0.1/../../var/www/html
ответил kubanczyk 22 J0000006Europe/Moscow 2009, 01:25:49
0

Я столкнулся с хостингом Windows с именем пользователя как brinkster /username, поэтому wget выкинет ошибку, если вы используете синтаксис:

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

Чтобы пройти мимо этого, используйте

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

Мне пришлось столкнуться с этим с Windows-хостингом @ brinkster.

ответил Anto Joseph 26 12012vEurope/Moscow11bEurope/MoscowMon, 26 Nov 2012 01:28:45 +0400 2012, 01:28:45
-3

wget --user username --password yourpassword ftp://example.com/ftpfiles/filename выполнит задание или вы можете добавить * вместо имени имени файла: заставляет wget думать о порте, который в вашем случае недействителен.

ответил Khushwant Singh 20 J0000006Europe/Moscow 2013, 03:06:35

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132