Я хочу скопировать все файлы и папки с одного хоста на другой. Файлы на старом хосте находятся в / var / www / html, и у меня есть только FTP-доступ к этому серверу, и я не могу заархивировать все файлы. Регулярное подключение к старому хосту через FTP приводит меня в папку / home / admin.
Я попытался выполнить следующую команду с моего нового сервера:
wget -r ftp://username:password@ip.of.old.host
Но все, что я получаю, это составленный файл index.html.
Какой правильный синтаксис для использования Wget рекурсивно по FTP?
Ответы:
Попробуй
-m
для--mirror
источник
--ask-password
чтобы избежать сохранения пароляhistory
.wget -m ftp://username:password@ip.of.old.host/mydir/
Вы правильно поняли, вам просто нужен трейлинг * в конце:
Для общих серверов вы можете использовать так:
Поскольку большинство общих серверов имеет ftp-username что-то вроде username @ hostname, первая команда wget не работает, а вторая работает нормально.
источник
-m
или-r -l inf
потому , что -r имеет глубину рекурсии по умолчанию из 5. См gnu.org/software/wget/manual/...Помимо wget, вы также можете использовать lftp в режиме сценария. Следующая команда отразит содержимое заданного удаленного каталога FTP в заданном локальном каталоге и может быть помещено в задание cron:
Он автоматически обрабатывает рекурсию в каталоги и позволяет указать исходный каталог удаленного источника, из которого загружаются данные.
источник
Вы можете использовать 'curlftpfs - монтировать FTP-хост как локальный каталог', а после монтирования вы можете использовать обычные файловые инструменты, такие как 'cp -r'.
источник
curlftpfs
у вас есть серьезные проблемы с производительностью прямо сейчас, если вы неlibcurl3-gnutls
Проверьте приведенную ниже команду wget для рекурсивной загрузки данных с FTP.
-r
: Для рекурсивной загрузки.-np
: Не для родителей по возрастанию.-nH
: Для отключения создания каталога, имя которого совпадает с именем URL, т.е. abc.xyz.com--cut-dirs
: Для игнорирования количества родительских каталогов. Значение этой опции будет отличаться для вашей команды.Вы можете проверить, выполнив вышеуказанную команду.
источник
Используйте -m, а не -r, из-за глубины рекурсии.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
источник
Должен работать, попробуйте:
источник
Использование:
и он будет отражать все файлы и папки.
источник
Это правильный синтаксис. Не уверен, почему вы не получаете ожидаемых результатов.
Как всегда, есть больше чем один способ сделать это. Попробуй ncftp, в частности ncftpget
источник
Я могу понять, пытаетесь ли вы сбросить это в cron или что-то еще, но почему бы просто не зайти по ftp на сервер с вашим обычным клиентом и mget *? Это может быть более быстрый путь к успеху.
источник
Я думаю, что это будет работать в вашем случае:
источник
Я сталкивался с хостингом Windows с именем пользователя brinkster / username, поэтому wget выдает ошибку, если вы используете синтаксис:
Чтобы обойти это, используйте
Мне пришлось столкнуться с этим с Windows хостингом @ brinkster.
источник
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
выполнит работу, или вы можете добавить * вместо имени файла: заставляет wget думать о порте, который в вашем случае недопустим.источник