Time-Stamping

Time-Stamping

One of the most important aspects of mirroring information from the Internet is updating your archives.

Downloading the whole archive again and again, just to replace a few changed files is expensive, both in terms of wasted bandwidth and money, and the time to do the update. This is why all the mirroring tools offer the option of incremental updating.

Such an updating mechanism means that the remote server is scanned in search of new files. Only those new files will be downloaded in the place of the old ones.

 

A file is considered new if one of these two conditions are met:

  1. A file of that name does not already exist locally.
  2. A file of that name does exist, but the remote file was modified more recently than the local file.

To implement this, the program needs to be aware of the time of last modification of both local and remote files. We call this information the time-stamp of a file.

The time-stamping in GNU Wget is turned on using ‘—timestamping’ (‘-N’) option, or through timestamping = on directive in .wgetrc. With this option, for each file it intends to download, Wget will check whether a local file of the same name exists. If it does, and the remote file is not newer, Wget will not download it.

If the local file does not exist, or the sizes of the files do not match, Wget will download the remote file no matter what the time-stamps say.

 

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

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

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

Файл считается новым, если выполнено одно из этих двух условий:

  1.   Файл с таким именем уже не существует локально.
  2.   Файл этого имени существует, но удаленный файл был изменен совсем недавно, чем локальный файл.

Чтобы реализовать это, программа должна знать о времени последней модификации как локальных, так и удаленных файлов. Мы называем эту   информацию отметкой времени файла.

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

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