Как заставить wget использовать существующие локальные файлы независимо от того, что - PullRequest
0 голосов
/ 31 октября 2018

Я использую опцию wget mirror для зеркалирования всего сайта

wget -mk https://test.com

Когда я останавливаю wget и затем возобновляю его с помощью той же команды, он будет продолжать выдавать HEAD-команды для всех уже загруженных файлов. Это делается для того, чтобы проверить, изменились ли файлы с момента последней загрузки, и снова получить их, если файл на сервере новее. Я хотел бы отключить эту функцию, что означает: Если локальный файл уже существует, wget должен всегда использовать локальный файл и даже не вводить команду HEAD для проверки времени изменения или размера файла. Возможно ли это?

1 Ответ

0 голосов
/ 07 ноября 2018

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

  1. Последний загружаемый файл теперь неполон и поврежден. Но у вас нет никаких сведений об этом или о том, какой файл это был. Это также означает, что Wget не сможет анализировать и переходить по ссылкам из этого файла. Таким образом, вы, скорее всего, в конечном итоге получите частичное зеркало и ничего вам не скажете.

  2. Некоторые файлы изменились на удаленном конце между вашей последней попыткой и текущей. Без повторной проверки времени модификации вы получите несогласованное зеркало. Поскольку половина зеркала старая, а другая половина новая, это новое, в результате могут возникнуть всевозможные интересные проблемы.

И в любом случае запрос HEAD выполняется очень быстро, поскольку ему требуется очень небольшая пропускная способность. Поэтому я не понимаю, почему это может стать причиной удушья в любом трубопроводе.

...