Возобновить неудачную загрузку с помощью инструмента командной строки Linux

37

Как возобновить частично загруженный файл с помощью инструмента командной строки Linux?

Я частично загрузил большой файл, то есть 400 МБ из 900 МБ из-за перебоя в питании, но при возобновлении загрузки он возобновляется с нуля. Как начать с самого 400 МБ?

amolveer
источник
5
Какую командную строку вы использовали для загрузки файла?
Антон
3
Пожалуйста, не отвечайте в комментариях, обновите свой неполный вопрос .
Антон
1
Если вы используете curl, вы должны поискать страницу справочника для -Cопции.
HalosGhost

Ответы:

53

Поскольку вы не указали, я предполагаю, что вы используете wgetдля загрузки файла. Если это так, попробуйте использовать его с -cопцией (например wget -c <URL>).

Обратите внимание, что в случае, если используется протокол ftp (URL выглядит так ftp://...), существует вероятность, что удаленный сервер использует старый / древний демон ftp, который не поддерживает возобновление загрузки (более новые демоны ftp поддерживают его более десяти лет) так что это всего лишь маленький шанс). Если это так, то вам может не повезти. С другой стороны, у вас не должно быть проблем, если используется протокол http. (ОБНОВЛЕНИЕ: По мнению других экспертов (включая Жиля в комментариях ниже), возобновление при использовании http также зависит от поддержки сервера, поэтому это относится как к ftp, так и к http).

Удачи.

Marcelo
источник
5
Загрузка HTTP может быть возобновлена, только если сервер ее поддерживает, и это реже, чем с FTP-серверами.
Жиль "ТАК - перестань быть злым"
Спасибо, Жиль, у меня был только хороший опыт возобновления при использовании http, но вы, вероятно, правы, и мне повезло. Обновлю мой ответ.
Марсело
wget -c http:...работал 3 или 4 сервера, на которых я пробовал.
Боб Стейн
Благослови вас Бог, мужик!
ученик
3
@Gilles: На самом деле, теперь это распространенная опция для любого статического контента с серверов, выпущенных до 2010 года (другими словами, большинство серверов по умолчанию разрешают запросы Range для статических файлов). Для динамически генерируемых данных это действительно редко.
Писквор
0

Я знаю, что означает исходный вопрос, и ответ не wget -c ...

Сценарий можно описать так:

# Start mirroring a site
wget -m http://...
# 400MB later wget died or interrupted,
# don't know where it left off, don't care,
# just want to get the remaining 100MB without getting the first 400MB again
wget -nc -r -l inf --no-remove-listing http://...

Опции "-r -l inf --no-remove-list" эквивалентны -m без параметра -N. Добавляя параметр -nc, избегайте сохранения первых 400 МБ уже на вашем жестком диске.

Майкл Чен
источник