Как говорит Грант, вы можете комбинировать wget с контролем версий для экономии места. На самом деле я пытаюсь написать сценарий, чтобы сделать это для моего обычного просмотра, так как я не доверяю интернет-архиву или веб-сайту, которые существуют бесконечно (и они не очень доступны для поиска).
Сценарий будет выглядеть примерно так: перейдите в каталог; вызовите правильную команду wget --mirror
или любую другую; запустите darcs add $(find .)
, чтобы проверить в хранилище любые новые файлы; тогда darcs record --all
.
Wget должен перезаписывать любые измененные файлы обновленной версией; darcs add запишет все новые файлы / каталоги; Даркс запись сохранит изменения.
Чтобы получить представление на дату X, вы просто извлекаете из своего репо все патчи до даты X.
Вы не храните неограниченное количество дубликатов, потому что DVCS не сохраняют историю, если нет фактических изменений в содержимом файла. Вы получите «мусор» в том смысле, что при переходе на страницы больше не требуется CSS, JS или ранее загруженные изображения, но вы можете просто периодически удалять все и записывать это как патч, а следующий вызов wget будет только извлекать необходим для последней версии веб-страницы. (И вы все еще можете выполнять полнотекстовый поиск, просто теперь вы ищите историю, а не файлы на диске.)
(Если загружаются большие медиа-файлы, вы можете добавить что-то вроде rm $(find . -size +2M)
, чтобы удалить их до того, как они получат darcs add
ed.)
РЕДАКТИРОВАТЬ: В итоге я не стал беспокоиться о явном контроле версий, но позволил wget создавать дубликаты и время от времени засеивать их fdupes
. См http://www.gwern.net/Archiving%20URLs