web-dev-qa-db-ja.com

ファイル作成後に一度だけ変更される時間値

明示的に指定された値でディスクをマウントしました-atime:

mount -o mount -o atime /dev/disk1 /myDisk

それから私はファイルを作成しました

touch file_A

この操作の後、統計出力は次のようになります。

Access: 2013-08-30 11:38:48.141970758 +0200
Modify: 2013-08-30 11:38:48.141970758 +0200
Change: 2013-08-30 11:38:48.141970758 +0200

cat /myDisk/file_A stat出力は変更されますが、1回だけです。

    Access: 2013-08-30 11:39:11.141970758 +0200
    Modify: 2013-08-30 11:38:48.141970758 +0200
    Change: 2013-08-30 11:38:48.141970758 +0200

その後、catを複数回実行しても、アクセス時間の値はまったく変更されません。それの何がいけないの?この振る舞いはどこから来たのですか?このファイルで猫を操作するたびに、アクセス時間が変わると思います。なぜ最初のアクセスのみが表示されるのですか?

(noatimeオプションを使用してディスクをマウントすると、別の動作が発生します。猫の変更のいずれかが統計でアクセス時間になります。変更と変更は同じままです)

2
Borys

マウント時にrelatimeオプションを使用することは可能ですか? atimeほど多くのI/Oを発生させないが、noatimeで機能するツールを壊さないことにより、atimenoatimeの中間にあるはずです。

これはman 8 mountからの説明です:

   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 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 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.
1
replay