明示的に指定された値でディスクをマウントしました-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オプションを使用してディスクをマウントすると、別の動作が発生します。猫の変更のいずれかが統計でアクセス時間になります。変更と変更は同じままです)
マウント時にrelatime
オプションを使用することは可能ですか? atime
ほど多くのI/Oを発生させないが、noatime
で機能するツールを壊さないことにより、atime
とnoatime
の中間にあるはずです。
これは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.