Вопрос Время доступа к файлу не обновляется


Я просто просмотрел /etc/resolv.conf файл с использованием cat (или открыть его с помощью mcedit). Теперь, когда я перечисляю данные файла, используя ls -ul «время доступа» не изменяется / обновляется - имеет то же, старое значение. Это странно, потому что для любых других файлов время доступа обновляется после cat.


3
2017-12-31 10:29


происхождения


Этот ответ предполагает, что многие файловые системы отключают обновление atime по соображениям производительности, возможно, дело для вас? - Eric Renouf


ответы:


взывать df /etc/resolv.conf и обратите внимание на то, какая точка монтирования существует. Пример из моего Kubuntu:

$ df /etc/resolv.conf
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs             806600  9660    796940   2% /run

Удивительно, но мой resolv.conf находится под /run, Правда:

$ ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Nov 24  2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

Затем нам нужно знать его варианты монтирования:

$ mount | grep " /run "
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=806600k,mode=755)

Обрати внимание на atimeсвязанный вариант. В моем случае это relatime, man 8 mount объясняет:

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

(Проверьте остальную часть *atime чтобы иметь полную картину.)

relatime очень распространен в наши дни. Он сохраняет частоту записи, но все же обеспечивает atime к программам, которые в ней нуждаются. В моем Kubuntu только эти монстры не используют relatime:

$ mount | grep -v relatime
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)

Вероятно, вы широко используете relatime слишком.

Это странно, потому что для любых других файлов время доступа обновляется после cat,

Возможно, «предыдущее время доступа было раньше, чем текущее время изменения или изменения», поэтому atime была обновлена. Или «другие файлы» находятся под другой точкой монтирования (например, с strictatime опция). Обратите внимание на мой resolv.conf находится в другой файловой системе, чем вся /etc/ (/etc/resolv.conf является символической ссылкой в ​​другом месте), поэтому в целом вы даже не должны предполагать, что «файлы» в том же каталоге находятся в одной и той же файловой системе под той же точкой монтирования с теми же параметрами.

Независимо от вашей настройки, теперь вы знаете, как исследовать проблему.


0
2017-12-31 13:25