GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Dateizugriffszeit wird in Ubuntu 12.04 nicht aktualisiert

Statt cat Sie müssen touch verwenden (oder etwas, das einen Schreibvorgang erzwingt) oder explizit atime deklariert in Ihrer Mount-Option.

Ubuntu verwendet relatime als Standard. Der Linux-Kernel verwendet tatsächlich relatime als Standard ab Version 2.6.30. Dies aktualisiert nur bestimmte Werte, wenn auf Dateien zugegriffen wird, anstatt alle. Dies modifiziert den cat Verhalten, sodass die Zugriffszeit nicht aktualisiert wird. Dies ist die Standardeinstellung in Ubuntu-Mount-Optionen. Die einzige Möglichkeit, die Zugriffszeit zu ändern, ist das Berühren der Datei (auch bekannt als Erzwingen eines Schreibvorgangs) anstelle eines einfachen Lesevorgangs.

Der Grund dafür ist die Leistung. Wenn jeder Lesevorgang einen Schreibvorgang erfordert, wie es POSIX erfordert, verschlechtert sich die Effizienz von Festplatten und Flash-basierten Geräten. Dies scheint auch in schreibgeschützten Dateisystemen kontraproduktiv zu sein.

Es gibt eine Menge Diskussionen zu diesem Thema in Ask Ubuntu und Super User:

  • https://askubuntu.com/q/2099/169736
  • https://superuser.com/q/464290/235569

Es gibt 3 Mount-Optionen, die Sie im Allgemeinen beachten müssen, wenn Sie mit atime arbeiten . Sie kennen die ersten 2 von der Manpage von mount

Auszüge

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).

Die andere Option, mit der Sie wahrscheinlich nicht vertraut sind und die Ihren Kummer verursacht, ist diese, die seit Kernel 2.6.30 die Standardeinstellung ist:

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.

Sie können überprüfen, ob diese Optionen auf einem Dateisystem gesetzt sind, indem Sie unter /proc/mounts nachsehen .

Beispiel

$ 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

Der Unterschied zu relatime gegenüber noatime ist, dass Änderungen vorgenommen werden, aber nur, wenn die aktuelle Zugriffszeit nach der vorherigen Zugriffszeit liegt.

Die Zugriffszeit wird nur aktualisiert, wenn die vorherige Zugriffszeit vor der aktuellen Modifizierungs- oder Änderungszeit lag. (Ähnlich wie noatime, unterbricht aber Mutt oder andere Anwendungen nicht, die wissen müssen, ob eine Datei seit ihrer letzten Änderung gelesen wurde.)


Linux
  1. Überwachung des Linux-Dateizugriffs?

  2. Wann wurde die Datei erstellt?

  3. Ubuntu – Linux – Dateiänderungszeit vs. Änderungszeit?

  4. Suspend funktioniert nicht nach dem Update auf Ubuntu 14.04 von 13.10?

  5. gleichzeitiger zugriff auf datei linux

Wie greife ich von Ubuntu auf Windows-Dateien zu?

Zeitanzeige zeigt Datum/Uhrzeit nicht an?

So extrahieren Sie eine RAR-Datei unter Ubuntu

So fügen Sie eine Auslagerungsdatei unter Ubuntu 20.04 hinzu

Datei:Befehl nicht gefunden

Prolog-Programmierung in Ubuntu