Как обойти отсутствующие «последние измененные» заголовки?

13

Я бегу wgetтак:

wget --mirror --adjust-extension --convert-links --no-cookies http://tshepang.net -o log-main

Я получаю кучу этих сообщений:

Last-modified header missing -- time-stamps turned off.

Я предполагаю, что это означает, что страницы продолжают перезагружаться, даже если они у меня есть локально.

ПРИМЕЧАНИЕ : я хочу, чтобы мне не приходилось перезагружать существующие файлы каждый раз, когда я запускаю командное зеркало.

tshepang
источник
Вы владелец страницы (если это действительно tshepang.net). Если да, то является ли веб-сервер apache и контролируете ли вы его конфигурацию? Или, по крайней мере, включен .htaccess с разрешенным переопределением параметров?
forcefsck
@forcefsck: нет, сайт находится в ведении Posterous. У них есть API для чтения всех постов, но для меня это веб-технология.
Чепанг

Ответы:

10

Вы пытались добавить -cпараметр?

Выдержка из руководства wget:

-c - продолжить

Начиная с Wget 1.7, если вы используете -c для непустого файла и оказывается, что сервер не поддерживает продолжение загрузки, Wget откажется начинать загрузку с нуля, что фактически приведет к разрушению существующего содержимого. Если вы действительно хотите, чтобы загрузка началась с нуля, удалите файл.

Кроме того, начиная с Wget 1.7, если вы используете -c для файла, размер которого равен размеру файла на сервере, Wget откажется загружать файл и печатать пояснительное сообщение. То же самое происходит, когда файл меньше на сервере, чем локально (предположительно, потому что он был изменен на сервере с момента последней попытки загрузки) - поскольку «продолжение» не имеет смысла, загрузка не происходит.

С другой стороны, при использовании -c любой файл, который на сервере больше, чем локально, будет считаться незавершенной загрузкой, и только байты «(длина (удаленная) - длина (локальная))» будут загружены и прикреплены к конец локального файла. Такое поведение может быть желательным в некоторых случаях - например, вы можете использовать wget -c для загрузки только новой части, которая была добавлена ​​в сбор данных или файл журнала.

Насколько мне известно, он должен пропускать файлы, которые уже загружены и имеют одинаковый размер.

Шиннок
источник
А что, если файл меньше?
CJ7