2013-12-04 1 views
0

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

ls -l --time=access -u --sort=time --time-style=+%H:%M:%S 

или

stat "filename" 

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

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 

Дело даже после того, как я выполнить эту команду мое время доступа к файлам не обновляется! Мой способ тестирования времени доступа - это открыть файл в gEdit или позвонить по номеру gcc в мой исходный файл.

Моя установка: Ubunto 12.0.4 работает на VMware, которая работает на Win 7

Вопрос: что я отсутствует или делаю неправильно, что мое время доступа не обновляется ??

ответ

1

Что вы наблюдаете, это изменение параметра mount по умолчанию, начинающегося с 2.6.30, чтобы обеспечить улучшение производительности файловой системы .

Цитируя man mount:

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

      Since Linux 2.6.30, the kernel defaults to the behavior provided 
      by this option (unless noatime was specified), and the stricta‐ 
      time 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. 

(Также см this и this.) Вы можете искать следующий mount вариант:

strictatime 
      Allows to explicitly requesting full atime updates. This makes 
      it possible for kernel to defaults to relatime or noatime but 
      still allow userspace to override it. For more details about the 
      default system mount options see /proc/mounts. 

 Смежные вопросы

  • Нет связанных вопросов^_^