นี่คือคำตอบที่ฉันเขียนถึงคำถามก่อนหน้า:
โดยทั่วไปหากคุณต้องการทราบว่ากระบวนการ / ผู้ใช้ / ไฟล์กำลังทำอะไรโดยไม่ต้องเรียกใช้ lsof กับ 24/7 คุณใช้ auditctl
สมมติว่าคุณมีการควบคุมการตรวจสอบเคอร์เนล-ish ที่ผ่านมาควรจะเป็นการดำเนินการอย่างง่าย (นี่เป็นภาษาเดเบียน - ฟูถ้าคุณใช้ Red Hat แปลตามความเหมาะสม)
# apt-get install auditd
ตรวจสอบให้แน่ใจว่าสถานะกำลังทำงาน (/etc/init.d/auditd)
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
แทนที่ b64 ด้วย b32 หากคุณใช้งานอาร์คแบบ 32 บิตการเปิดสามารถถูกแทนที่ด้วยการเรียกของระบบหรือคำว่า 'all'
สำหรับการอ่านเพิ่มเติม manctctctl
คุณสามารถใช้วิธีนี้และขอให้ดูการโทรของระบบ 'unlink'
พารามิเตอร์ -w มีประโยชน์สำหรับการดูไฟล์ / ไดเรกทอรี แต่ในขณะที่หน้าคนอธิบายว่ามี caveats
-w พา ธ แทรกนาฬิกาสำหรับวัตถุระบบไฟล์ที่เส้นทาง คุณไม่สามารถแทรกนาฬิกาในไดเรกทอรีระดับบนสุด สิ่งนี้ถูกห้ามโดยเคอร์เนล ไม่สนับสนุนการใช้สัญลักษณ์แทนและจะสร้างคำเตือน วิธีการดูการทำงานคือการติดตาม inode ภายใน ซึ่งหมายความว่าหากคุณวางการเฝ้าดูในไดเรกทอรีคุณจะเห็นสิ่งที่ดูเหมือนจะเป็นเหตุการณ์ไฟล์ แต่จริงๆแล้วเป็นเพียงการอัปเดตข้อมูลเมตา คุณอาจพลาดเหตุการณ์บางอย่างด้วยการทำเช่นนี้ หากคุณต้องการดูไฟล์ทั้งหมดในไดเรกทอรีแนะนำให้ทำการวางแต่ละไฟล์ในแต่ละไฟล์ ซึ่งแตกต่างจากกฎการตรวจสอบ syscall นาฬิกาไม่ส่งผลกระทบต่อประสิทธิภาพการทำงานขึ้นอยู่กับจำนวนของกฎที่ส่งไปยังเคอร์เนล