Как возобновить прерывание загрузки автоматически в curl?

Я работаю с curl в Linux. Я загружаю часть файла на ftp-сервере (используя параметр -r), но мое соединение не очень хорошо, оно всегда прерывается. Я хочу написать script, которые возобновляют загрузку, когда я снова подключусь.

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

until curl -r 666-9999 -C - --retry 999 -o "path/to/file" "ftp:/path/to/remote/file"; do :; done

Ответ 1

wget был специально создан для этого варианта использования. На странице man:

Wget has been designed for robustness over slow or unstable network connections;
if a download fails due to a network problem, it will keep retrying until the
whole file has been retrieved.  If the server supports regetting, it will
instruct the server to continue the download from where it left off.

wget доступен практически для всех дистрибутивов Linux - он, вероятно, уже установлен на вашем компьютере. Просто используйте wget для загрузки файла, он восстановит сетевое соединение, пока файл не будет полностью перенесен.

Ответ 3

curl -L -O your_url

Это загрузит файл.

Теперь позвольте сказать, что ваше соединение прервано;

curl -L -O -C - your_url

Это продолжит загрузку с последнего загруженного байта

Из man-страницы:

Используйте "-C -", чтобы сказать завиток, чтобы автоматически узнать, где/как возобновить передачу. Затем он использует заданные выходные/входные файлы, чтобы понять это.