คำสั่ง DEBUGFS - แสดงเวลาการสร้างไฟล์ใน Linux
ในระบบที่คล้ายกับ Unix เช่น Linux ทุกอย่างถือเป็นไฟล์ และข้อมูลทั้งหมดเกี่ยวกับไฟล์ (ข้อมูลเมตาหรือแอตทริบิวต์ของไฟล์ เช่น เวลาสร้าง การแก้ไขครั้งล่าสุด เป็นต้น) ยกเว้นเนื้อหาไฟล์จริงจะถูกจัดเก็บไว้ในไอโหนดและลินุกซ์ ระบุแต่ละไฟล์ด้วยหมายเลขไอโหนด นอกเหนือจากชื่อไฟล์ที่มนุษย์สามารถอ่านได้
นอกจากนี้ โปรแกรม Linux stat ยังเป็นยูทิลิตี้ที่มีประโยชน์สำหรับการแสดงไฟล์หรือสถานะของระบบไฟล์ โดยจะแสดงข้อมูล เช่น หมายเลขไอโหนด เวลาที่เกิดไฟล์ การแก้ไขข้อมูลล่าสุด การเข้าถึงล่าสุด การเปลี่ยนแปลงสถานะล่าสุด และอื่นๆ อีกมากมาย เราจะรวมทั้งสองโปรแกรมเข้าด้วยกันเพื่อค้นหาเวลาสร้างไฟล์จริงใน Linux
ในบทความนี้ เราจะอธิบายวิธีการค้นหาคุณลักษณะที่สำคัญประการหนึ่งของไฟล์โดยใช้โปรแกรม debugfs และ stat เพื่อรับข้อมูลการสร้าง/การเข้าถึงไฟล์ในต่อไปนี้ ระบบไฟล์ลินุกซ์
- ctime: แสดงเวลาการเปลี่ยนแปลงไฟล์
- เวลา: แสดงเวลาการเข้าถึงไฟล์
- mtime: แสดงเวลาแก้ไขไฟล์
- crtime: แสดงเวลาในการสร้างไฟล์
ค้นหาวันที่สร้างไฟล์ใน Linux
1. ในการค้นหาวันที่และเวลาในการสร้างไฟล์ “crtime” คือการค้นหา inode ของไฟล์โดยใช้คำสั่ง stat กับไฟล์ชื่อ “About-TecMint ”.
stat About-TecMint
File: 'About-TecMint'
Size: 260 Blocks: 8 IO Block: 4096 regular file
Device: 80ah/2058d Inode: 14420015 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ tecmint) Gid: ( 1000/ tecmint)
Access: 2017-02-23 14:15:20.263337740 +0530
Modify: 2015-10-22 15:08:25.236299000 +0530
Change: 2016-08-01 10:26:36.603280013 +0530
Birth: -
หรือคุณสามารถใช้คำสั่ง ls -i กับไฟล์ชื่อ “About-TecMint”
ls -i About-TecMint
14420015 About-TecMint
จากผลลัพธ์ของคำสั่งข้างต้น หมายเลขไอโหนดของไฟล์คือ 14420015 โปรดจดบันทึกหมายเลขไอโหนดที่ไม่ซ้ำกันนี้ เนื่องจากเราจะใช้หมายเลขไอโหนดนี้ในขั้นตอนต่อไปนี้
2. ตอนนี้ เราจำเป็นต้องค้นหาระบบไฟล์รูทที่มีไฟล์ของเราอยู่ เพียงใช้คำสั่ง df -h ต่อไปนี้เพื่อระบุระบบไฟล์รูท
df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 788M 9.7M 779M 2% /run
/dev/sda10 324G 277G 31G 91% /
tmpfs 3.9G 192M 3.7G 5% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop3 87M 87M 0 100% /snap/core/4486
/dev/loop0 87M 87M 0 100% /snap/core/4407
/dev/loop1 82M 82M 0 100% /snap/core/4206
/dev/loop2 181M 181M 0 100% /snap/vlc/190
/dev/loop4 189M 189M 0 100% /snap/vlc/158
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 788M 40K 788M 1% /run/user/1000
จากผลลัพธ์ข้างต้น ระบบไฟล์สำหรับพาร์ติชันรูทคือ /dev/sda10
(จดบันทึกระบบไฟล์นี้ไว้) สิ่งนี้จะแตกต่างออกไปในระบบของคุณ
3. จากนั้น ใช้ คำสั่ง debugfs เพื่อค้นหาเวลาสร้างไฟล์ชื่อ “About-TecMint” โดยมี - แฟล็ก R
ซึ่งสั่งให้ debugfs ดำเนินการคำสั่งภายนอกเดียวที่ระบุด้วยหมายเลขไอโหนด 14420015 (สถิติในกรณีนี้) จากนั้นจึงออก
sudo debugfs -R 'stat <14420015>' /dev/sda10
Inode: 14420015 Type: regular Mode: 0777 Flags: 0x80000
Generation: 2130000141 Version: 0x00000000:00000001
User: 1000 Group: 1000 Size: 260
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016
atime: 0x58aea120:3ec8dc30 -- Thu Feb 23 14:15:20 2017
mtime: 0x5628ae91:38568be0 -- Thu Oct 22 15:08:25 2015
crtime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016
Size of extra inode fields: 32
EXTENTS:
(0):57750808
(END)
จากผลลัพธ์ข้างต้น ชัดเจนว่าไฟล์ “About-TecMint” ถูกสร้างขึ้นเมื่อ จันทร์ที่ 1 สิงหาคม 10:26:36 2016
ตามที่ได้รับจาก crtime . คุณยังจะเห็น “ctime“, “atime” และ “mtime” ของไฟล์ของคุณ