13.5 Отметки времени в записях о файлах в оглавлении каталогов contents

Подраздел


13.5 Отметки времени в записях о файлах в оглавлении каталогов

Одим из наиболее важных аспектов зеркального копирования информации из Интернет является изменение ваших архивов.

Копирование полного архива снова и снова, чтобы заменить несколько обновл©нных файлов является дорогим мероприятием, как в смысле потребляемой пропускной способности канала связи, так и времени на выполнение. Вот почему все средства, предназначенные для выполнения зеркального копирования, предлагают методы частичной замены файлов.

Такой механизм обновления обозначает, что удал©нный сервер сканируется на предмет определения новых файлов. Только эти файлы будут копироваться на ваш компьютер, замещая прежние версии этих файлов.

Файл рассматривается как новый в следующих случаях:

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

В GNU Wget режим проверок отметок времени включается параметром -timestamping (-N) или с помощью директивы
timestamping = on
в файле .wgetrc. Если такой параметр использован, то каждый раз когда конкретный файл планируется программой Wget к копированию, программа проверяет существует ли уже файл с таким именем, а если существует, то проверяет какой файл старше (удал©нный или локальный). Копирование производится лишь тогда, когда локальный файл старше удал©нного. Если локальный файл с таким именем не существует или его размер отличается от удал©нного, то производится копирование независимо от времени модификации.

13.5.1 Использование отметок времени для файлов в оглавлении каталогов во время копирования

Использование отметок времени модификации файла весьма просто. Скажем, вы желаете скопировать удал©нный файл так, чтобы он сохранял время модификации
wget -S http://www.gnu.ai.mit.edu/
По завершении копирования простой командой
ls -l
вы увидите, что время модификации локальной копии равно времени модификации удал©нной копии. Как вы обратили внимание, это произошло даже без использования параметра -N.

Несколько дней спустя, вы проверяете изменилась ли информация, которую вы уже копировали
wget -N http://www.gnu.ai.mit.edu/
В данном случае Wget сначала проверит, какие файлы старше, удал©нные или локальные. Скопированы будут лишь те файлы, которые изменились за эти несколько дней.

То же самое имеет место и для FTP.

Если вы желаете получать зеркальную копию каждую неделю, вы могли бы выдавать каждую неделю следующую команду:
wget -timestamping -r ftp://prep.ai.mit.edu/pub/gnu/

13.5.2 Техника использования отметок времени для файлов, копируемых по протоколу HTTP

Отметки времени в документах HTTP реализована посредством проверки заголовка Last-Modified. Если вы хотите скопировать файл feee.html посредством HTTP с использованием отметок времени, то Wget сначала проверит существует ли файл feee.html локально. Если нет, то он будет скопирован.

Если файл существует локально, Wget проверит время модификации файла, затем пошл©т запрос на удал©нный сервер. Если локальная копия файла окажется старее, то файл будет скопирован. Если нет, то Wget перейд©т к следующим файлам. В дополнение, Wget проверит размер файла, если размеры различны, файл будет скопирован.

13.5.3 Техника использования отметок времени для файлов, копируемых по протоколу FTP

Теоретически отметки времени в FTP обрабатываются также как и в файлах HTTP, только реализовано это иначе. В FTP отметки времени получаются из оглавления FTP сервера.

Для каждого каталога FTP Wget использует команду LIST, чтобы получить оглавление каталога. Программа пытается анализировать оглавление, предполагая, что оно имеет такой же формат как ответ команды
ls -l
в операционной системе UNIX. В остальном - все происходит так же как и в HTTP.


contents
Обновлено: 16.03.2015