RHEL6.xでファイル生成日時crtimeを確認する方法

ファイルには様々なメタデータがあり、代表的なのはmtime, atime, ctimeとかがあります。ext3ではこれらの情報はi-nodeの情報として格納されており、statコマンド等で確認する事ができます。ここでctimeはChange timeなので厳密にはファイルの生成時間ではありませんが、ext4からは嬉しい事にファイル生成時間がcrtimeとして拡張されています

さて、今お仕事で触っているRHEL6.xですが、こいつのcoreutilsのバージョンが8.4です。statコマンドがcrtimeの表示をサポートする初めてのコミットを含むバージョンは8.6であるため、RHNのパッケージのstatコマンドでは確認できません。RHEL 7.xではstatで知ることができるでしょう。

この程度のために他のリポジトリからのパッケージの導入やコンパイルをするもの億劫ですし、頻繁に使うわけでもありません。情報自体はi-nodeに格納されているため、その情報を見ることができればcrtimeを知る事ができます。debugfsコマンドはext2, 3, 4のデバッグ用のコマンドで、これを使ってファイルのi-nodeの情報を見ることができます。

debugfs -R "stat /root/test" /dev/mapper/vg01-lv02
ファイルシステムのマウントポイントをルートとしたPATH指定なので注意。<>でくくってi-node番号指定にする事もできます。これを打つと以下のようにi-nodeの情報が出力されます。

Inode: 133370 Type: regular Mode: 0644 Flags: 0x80000 
Generation: 1995841318 Version: 0x00000000:00000001 
User: 0 Group: 0 Size: 250 
File ACL: 0 Directory ACL: 0 
Links: 1 Blockcount: 8 
Fragment: Address: 0 Number: 0 Size: 0 
ctime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010 
atime: 0x4c3da303:c11dd858 -- Wed Jul 14 12:44:03 2010 
mtime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010 
crtime: 0x4c080d16:0bf9435c -- Thu Jun 3 21:14:14 2010  ←これ
Size of extra inode fields: 28 
EXTENTS: 
(0): 557470