Время доступа к файлу, не обновляющее в человечности 12.04

См. также GNU truncate команда:

truncate -s 2G some-file
4
09.12.2013, 00:08
2 ответа

Вместо cat необходимо использовать touch (или что-то, что вызывает запись), или явно объявление atime в Вашей опции монтирования.


Использование Ubuntu relatime как значение по умолчанию. Ядро Linux, на самом деле, использование relatime как значение по умолчанию от версии 2.6.30 вперед. Это только обновляет определенные значения, когда к файлам получают доступ вместо всех. Это изменяет cat поведение, таким образом, это не обновит время доступа. Это - значение по умолчанию в Ubuntu, монтируют опции. Единственный способ изменить время доступа касается файла (иначе вызывающий запись) вместо простого чтения.

Причиной позади этого является производительность. Если каждое чтение потребует записи, как POSIX требует, эффективность дисков и основанных на флэш-памяти устройств будет хуже. Это также кажется счетчиком producent в файловых системах только для чтения.

Существует набор дискуссии об этой теме в, Спрашивают Ubuntu и Суперпользователь:

5
27.01.2020, 20:49
  • 1
    , как я могу включить atime, только для любопытства. Я выполняю тестовый сервер на своем доме, таким образом, я просто хочу протестировать вещи –  Cody 08.12.2013, 16:23
  • 2
    @Cody монтирует файловую систему с atime. –  Braiam 08.12.2013, 16:38
  • 3
    Теперь я получил его. Это только обновляет время доступа к файлу, когда ранее, чем изменяют время изменения или время. –  Cody 08.12.2013, 16:38
  • 4
    и Как я могу сделать это?? –  Cody 08.12.2013, 16:40
  • 5
    @Cody я думаю, что это, спрашивают где-то в другом месте несколько раз. Попробуйте изменение, Linux монтирует опции. –  Braiam 08.12.2013, 16:42

Существуют 3, монтируют опции, о которых обычно необходимо знать при контакте с atime. Вы знакомы с первыми 2 из страницы справочника монтирования

выборки

atime  Do not use noatime feature, then the inode access time is controlled 
       by kernel defaults. See also the description for strictatime and  
       relatime mount options.

noatime
          Do not update inode access times on this filesystem (e.g., for 
          faster access on the news spool to speed up news servers).

Другая опция Вы вероятны не знакомые с, и тот, вызывающий Ваше горе, является этим, который был значением по умолчанию начиная с ядра 2.6.30:

relatime
          Update  inode  access times relative to modify or change time.
          Access time is only updated if the previous access time was 
          earlier than the current modify or change time. (Similar to 
          noatime, but doesn't break mutt or other applications that need to 
          know if a file has  been  read since the last time it was 
          modified.)

          Since  Linux 2.6.30, the kernel defaults to the behavior provided 
          by this option (unless noatime was  specified), and the 
          strictatime option is required to obtain traditional semantics. In 
          addition, since Linux 2.6.30, the file's last access time is 
          always   updated   if   it   is more than 1 day old.

Можно проверить, установлены ли эти опции в файловой системе путем взгляда под /proc/mounts.

Пример

$ head -5 /proc/mounts
rootfs / rootfs rw 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=3976812k,nr_inodes=994203,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0

Различие с relatime по сравнению с.noatime это, это внесет изменения, но только когда текущее время доступа после предыдущего времени доступа.

Время доступа только обновляется, если предыдущее время доступа было ранее, чем ток изменяет или изменяет время. (Подобный noatime, но не повреждает дурака или другие приложения, которые должны знать, был ли файл считан с прошлого раза он был изменен.)

4
27.01.2020, 20:49

Теги

Похожие вопросы