ค้นหาเว็บไซต์

คำสั่ง 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” ของไฟล์ของคุณ