Database JUNKY

MySQL,MariaDBを中心としたブログです

ファイルの最終アクセス日時の契機は何?(atime)

最終アクセス日時について調べてみた

Windows,Linux 共にファイルに対して、作成日、更新日はあるのはご存知だとは思いますが、最終アクセス日付というのがあるのは知っていますか?ってえ?知っている、知らなかったの自分だけですね。ごめんなさい。では、この最終アクセス日時っていつ更新されるかわかりますか?

  • ファイルをcpした時?
  • ファイルをmvした時?
  • ls で一覧を見た時?
  • cat もしくは、 less で見た時?
  • webから参照した場合

と色々なケースでアクセスってあると思うのですが、何か契機(トリガー)で変更されるのか私自身わかっていないので、調べてみました。

f:id:hit10231023:20180308234003p:plain

以降 centos6系で検証を進めます。windowsは、、ごめんなさい。あまり要件がないのとしくみがちょっと違うので今回検証からは除外させていただきます。

検証データ

下記mp4ファイルです。

[root@us-vmf-edge30 videos]# ls -la
total 10816
drwxr-xr-x 2 root root     4096 Jun 15 03:01 .
drwxr-xr-x 3 root root     4096 Jun  7 21:53 ..
-rw-r--r-- 1 root root 11064615 May 29 23:15 abcde.mp4

最終アクセス日時を確認するには?

Linuxで対象ファイルの最終アクセス日時を確認するコマンドは、

ls -lu

です。

試しに、上記のファイルの日付を変更してみた時どのような日付になるか確認してみたいと思います

  • 検証のため、最終アクセス日時を、"2017-01-01 00:00:00" に変更

``` touch -a -t 201701010000 abcde.mp4

* 変更されたか、ls -lu で確認

  最終アクセス日時が変更されていることを確認

 ```
# ls -lu
total 10808
-rw-r--r-- 1 root root 11064615 Jan  1 00:00 abcde.mp4

検証

では、早速ではありますが、検証してみたいと思います。

ファイルをコピー(cp)

コピー先ではなく、コピー元の最終アクセス日が変わるのか検証です。

# cp abcde.mp4 abcde2.mp4
# ls -lu
total 21616
-rw-r--r-- 1 root root 11064615 Jun 15 15:48 abcde2.mp4
-rw-r--r-- 1 root root 11064615 Jun 15 15:48 abcde.mp4

最終アクセス日時が変わりましたね。

ファイルを移動(mv)

移動というか、リネームかな。

# mv -f abcde.mp4 abcdef.mp4
# ls -lu
total 10808
-rw-r--r-- 1 root root 11064615 Jan  1 00:00 abcdef.mp4

こちらは日時に変更はありませんでした。

lsで一覧を確認

こちらは、もちろん日付は変わりませんでした

catで中身を見る

バイナリなので見てもわけわかないのですがw

# cat abcdef.mp4
# ls -lu
total 10808
-rw-r--r-- 1 root root 11064615 Jun 15 16:05 abcdef.mp4

まあ、完全にアクセスですからねw当然日付はかわります。

webから動画を参照

では、ブラウザからこのファイルを参照した場合はどうでしょうか? webサーバは設定済みという前提で、

curl http://localhost/mp4/abcdef.mp4

を叩いて見ました

# ls -lu
total 10808
-rw-r--r-- 1 root root 11064615 Jun 15 16:05 abcdef.mp4

こちら、無事に変更されました!!!

mvが更新されないのは意外でした。。

ちなみにcpコマンドでも -a オプション入れるとおもしろい結果になります(コピー先の最終アクセス日が変わらないんだと・・)

# ls -lu
-rw-r--r-- 1 root root 11064615 Jan  1 00:00 abcdef.mp4

# cp -a abcdef.mp4 abcdef_new.mp4

# ls -lu
-rw-r--r-- 1 root root 11064615 Jun 15 17:17 abcdef.mp4
-rw-r--r-- 1 root root 11064615 Jan  1 00:00 abcdef_new.mp4