ฉันรู้ว่านี่เป็นคำถามเก่า แต่ฉันจะแนะนำวิธีการอื่นในกรณีที่มีคนพบว่ามีประโยชน์ ฉันโพสต์สิ่งนี้เป็นคำตอบสำหรับคำถามที่ติดกับสิ่งนี้
ทางเลือกหนึ่งคือการใช้sysdig
: แอพพลิเคชั่นการตรวจสอบระบบโอเพ่นซอร์ส ใช้มันคุณสามารถตรวจสอบกิจกรรมบนไฟล์โดยใช้ชื่อ สมมติว่าคุณต้องการดูกระบวนการที่สร้างไฟล์ชื่อ/tmp/example.txt
:
# sysdig fd.name=/tmp/example.txt
567335 16:18:39.654437223 0 touch (5470) < openat fd=3(<f>/tmp/example.txt) dirfd=-100(AT_FDCWD) name=/tmp/example.txt flags=70(O_NONBLOCK|O_CREAT|O_WRONLY) mode=0666
567336 16:18:39.654438248 0 touch (5470) > dup fd=3(<f>/tmp/example.txt)
567337 16:18:39.654438592 0 touch (5470) < dup res=0(<f>/tmp/example.txt)
567338 16:18:39.654439629 0 touch (5470) > close fd=3(<f>/tmp/example.txt)
567339 16:18:39.654439764 0 touch (5470) < close res=0
567342 16:18:39.654441958 0 touch (5470) > close fd=0(<f>/tmp/example.txt)
567343 16:18:39.654442111 0 touch (5470) < close res=0
จากผลลัพธ์นั้นคุณจะเห็นว่ากระบวนการที่touch
มีชื่อว่าpid 5470 เปิดไฟล์
หากคุณต้องการข้อมูลเพิ่มเติมคุณสามารถเรียกใช้ใน "โหมดการจับภาพ" ซึ่งมีการรวบรวมการติดตามการโทรของระบบ:
# sysdig -w /tmp/dumpfile.scap
จากนั้นรอไฟล์ที่จะสร้างจากนั้นหยุดsysdig
และเรียกใช้:
# csysdig -r /tmp/dumpfile.scap
นั่นจะช่วยให้คุณสำรวจทุกสิ่งที่เกิดขึ้น คุณสามารถกด<F2>
และเลือกFiles
กด<F4>
เพื่อค้นหาชื่อไฟล์จากนั้นกด<F6>
เพื่อ "ขุด" (ซึ่งจะแสดงผลลัพธ์ที่คล้ายกับคำสั่งด้านบน) ด้วยวิธีนี้คุณสามารถใช้วิธีการเดียวกันเพื่อค้นหาข้อมูลเกี่ยวกับกระบวนการที่สร้างไฟล์ขึ้นจริง
มีรุ่น GUI ที่csysdig
เรียกว่าsysdig-inspect
ถ้านั่นคือถ้วยชาของคุณ