Постоянная повторная попытка возобновления загрузки с помощью curl

Я нахожусь на mac и у меня есть список файлов, которые я хотел бы загрузить с ftp-сервера. Соединение немного глючит, поэтому я хочу, чтобы повторить попытку и возобновить, если соединение будет удалено.

Я знаю, что могу сделать это с помощью wget, но, к сожалению, Mac OS X не поставляется с wget. Я мог бы установить его, но для этого (если я что-то не пропустил) мне нужно сначала установить XCode и MacPorts, чего я хотел бы избежать.

Curl доступен, хотя кажется, но я не знаю, как это работает или как использовать его на самом деле. Если у меня есть список файлов в текстовом файле (один полный путь в строке, как ftp://user:pass@server/dir/file1) как я могу использовать curl для загрузки всех этих файлов? И могу ли я заставить керла никогда не сдаваться? Например, бесконечно повторять и возобновлять загрузки, где он остановился, и тому подобное?

2
задан Svish
11.03.2023 16:42 Количество просмотров материала 2856
Распечатать страницу

2 ответа

после того, как гуглить и человек чтения и такие на некоторое время я понял решение, которое работало для меня:

curl ftp://server/dir/file[01-30].ext --user user:pass -O --retry 999 --retry-max-time 0 -C -
  • [01-30] позволит загрузить 30 файлов с именем file01.ext, file02.ext и так далее
  • --user user:pass должно быть очевидно
  • -O для вывода в файлы с оригинальным названием
  • --retry 999 повторить 999 раз
  • --retry-max-time 0, чтобы предотвратить его от тайм-аута retrys. Поведение по умолчанию, если не указать исправлена --retry-задержка спать сначала одну секунду между повторными попытками, а затем удвоение, пока не достигнет 10 минут. между попытками
  • -C -, чтобы сделать его продолжить, где он упал из (если вы запустите команду еще раз). Тире потом говорит ему, чтобы выяснить, где возобновить с

если кто-то знает, как получить имена файлов из файла, пожалуйста, дайте мне знать.


на странице man написано следующее:

--URL-адресом <URL>

Укажите URL для выборки. Эта опция в основном удобна, когда вы хотите указать URL (ы) в файле конфигурации.

кажется, что это может быть что-то, но не совсем понимаю, как это будет использоваться...

18
отвечен Svish 2023-03-13 00:30

вы можете использовать опцию-K, чтобы завить, чтобы указать файл конфигурации. В этом случае используется следующий синтаксис:

optionname=<value>

если у вас есть файл, содержащий список URL-адресов, вы можете использовать curl такой:

sed 's/\(.*\)/-O\nurl=/g' url_list.txt | curl -K -

который преобразует список URL, например:

http://host1.com/foo.html
http://host2.com/bar.html

в таком формате:

-O
url=http://host1.com/foo.html
-O
url=http://host2.com/bar.html

Curl читает это и интерпретирует каждый из этих вариантов.

HTH,

Adam

2
отвечен ahawtho 2023-03-13 02:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

curl
download
mac
unix
wget
Вверх