inodeテーブルにファイルとディレクトリの作成時間を格納する(よく知られていて信頼性の高い)Linuxファイルシステムはありますか?
もしそうなら、「変更」時間はstat呼び出しでiノード生成時間に置き換えられますか?
答え1
一部のファイルシステムはファイル作成時間を保存しますが、このフィールドの標準名はありません。
- ufs2→st_birthtime
- zfs→crtime
- ext4→crtime
- btrfs→時間
- jfs→di_otime
答え2
これ外部4ファイルシステムは作成時間を保存します。stat -c %W myfile
お見せできます。
答え3
私が知る限り、ext4、JFS、BTRFSファイルシステムは名前が異なるかもしれませんが、すべての作成時間を保存するためにファイルinodeに追加のフィールドをサポートしています。
源泉:LWNファイル作成時間
答え4
xfs v5はcrtimeをサポート
# dmesg | grep -iE 'xfs.*\s+mounting' | head -1
[ 10.939721] XFS (dm-1): Mounting V5 Filesystem
ディスプレイにはV5を使用してください。次に、ファイルinode番号を取得します。
# stat -c '%i' test.txt
68227195
その後、crtimeを取得します。
# xfs_db -r -c "inode 68227195" -c "p v3.crtime.sec" <device eg. /dev/mapper/rl-root>
v3.crtime.sec = Mon Jun 6 15:13:02 2022
または1行で:
xfs_db -r -c "inode $(stat -c '%i' test.txt)" -c "p v3.crtime.sec" <device>
編集する
...もっと簡単な方法です。
" "からstat <filename>
返されたのと同じ結果についてBirth
[root@wsa test]# pwd
/root/test
[root@wsa test]# ls
total 8.0K
67109562 0 drwxr-xr-x. 2 root root 22 Mar 22 00:07 .
133 4.0K dr-xr-x---. 19 root root 4.0K Mar 21 23:54 ..
67552174 4.0K -rw-r--r--. 1 root root 10 Mar 22 00:07 test.txt
[root@wsa test]# df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/al-root 104806400 25289868 79516532 25% /
[root@wsa test]# xfs_db -r -c "inode $(stat -c '%i' test.txt)" -c "p v3.crtime.sec" /dev/mapper/al-root
v3.crtime.sec = Tue Mar 21 23:55:55 2023
[root@wsa test]# stat test.txt
File: test.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 67552174 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-03-22 00:07:38.926108379 +0000
Modify: 2023-03-22 00:07:55.794041676 +0000
Change: 2023-03-22 00:07:55.794041676 +0000
Birth: 2023-03-21 23:55:55.413859045 +0000
そして実行。
Operating System: AlmaLinux 8.7 (RHEL clone)
Kernel Version: 4.18.0-425.13.1.el8_7.x86_64 (64-bit)
[root@wsa test]# stat --version
stat (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
[root@wsa test]# xfs_db -r /dev/mapper/al-root
xfs_db> version
versionnum [0xb4b5+0x18a] = V5,NLINK,DIRV2,ATTR,ALIGN,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT,CRC,FTYPE,FINOBT,SPARSE_INODES,REFLINK