GNU/Linux >> Tutoriels Linux >  >> Linux

Le temps d'accès au fichier ne se met pas à jour dans Ubuntu 12.04

Au lieu de cat vous devez utiliser touch (ou quelque chose qui force une écriture), ou en déclarant explicitement atime dans votre option de montage.

Ubuntu utilise relatime par défaut. Le noyau Linux, en fait, utilise relatime par défaut à partir de la version 2.6.30. Cela ne met à jour que certaines valeurs lors de l'accès aux fichiers au lieu de tous. Cela modifie le cat comportement afin qu'il ne mette pas à jour le temps d'accès. C'est la valeur par défaut dans les options de montage d'Ubuntu. La seule façon de modifier le temps d'accès est de toucher le fichier (c'est-à-dire de forcer une écriture) au lieu d'une simple lecture.

La raison derrière cela est la performance. Si chaque lecture nécessite une écriture comme l'exige POSIX, l'efficacité des disques et des périphériques basés sur la mémoire flash sera moins bonne. Cela semble également contre-productif dans les systèmes de fichiers en lecture seule.

Il y a beaucoup de discussions sur ce sujet dans Ask Ubuntu et Super User :

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

Il existe 3 options de montage dont vous devez généralement être conscient lorsque vous traitez avec atime . Vous connaissez les 2 premiers, de la page de manuel de mount

extraits

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

L'autre option que vous ne connaissez probablement pas, et celle qui cause votre chagrin est celle-ci, qui est la valeur par défaut depuis le noyau 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.

Vous pouvez vérifier si ces options sont définies sur un système de fichiers en regardant sous /proc/mounts .

Exemple

$ 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

La différence avec relatime vs noatime est qu'il apportera des modifications, mais uniquement lorsque l'heure d'accès actuelle est postérieure à l'heure d'accès précédente.

L'heure d'accès n'est mise à jour que si l'heure d'accès précédente était antérieure à l'heure de modification ou de changement actuelle. (Similaire à noatime, mais ne casse pas mutt ou d'autres applications qui ont besoin de savoir si un fichier a été lu depuis la dernière fois qu'il a été modifié.)


Linux
  1. Obtenir l'âge du fichier donné ?

  2. Obtenir l'heure de création/création du fichier ? ?

  3. La suspension ne fonctionne pas après la mise à jour vers Ubuntu 14.04 à partir de 13.10 ?

  4. fichier :commande introuvable

  5. accès simultané au fichier linux

Comment accéder aux fichiers Windows à partir d'Ubuntu ?

R 3.5.0 ne fonctionne pas sur Ubuntu 18.04 ?

L'indicateur de temps n'affiche pas la date/l'heure ?

Comment extraire un fichier RAR sur Ubuntu

Comment ajouter un fichier d'échange sur Ubuntu 20.04

shebang ou pas shebang