यह एक उत्तर है जो मैंने पिछले प्रश्न के लिए लिखा था:
आम तौर पर अगर आप यह जानना चाहते हैं कि एक प्रक्रिया / उपयोगकर्ता / फ़ाइल इसके बिना lsof को चलाने के लिए क्या कर रही है तो 24/7 आप ऑडिटेकल का उपयोग करते हैं।
मान लें कि आपके पास हाल-ईश कर्नेल ऑडिट नियंत्रण एक सरल ऑपरेशन होना चाहिए। (यह डेबियन-फू में है, यदि आप उपयुक्त रूप में Red Hat अनुवाद चला रहे हैं)
# apt-get install auditd
सुनिश्चित करें कि इसकी रनिंग (/etc/init.d/auditd स्थिति)।
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
यदि आप 32-बिट आर्च चला रहे हैं तो b64 को b64 से बदलें, खुले को किसी भी सिस्टम कॉल या 'ऑल' शब्द से बदला जा सकता है
अधिक के लिए ऑडिटेकल मैनपेज पढ़ें।
आप इस पद्धति का उपयोग कर सकते हैं और इसे 'अनलिंक' सिस्टम कॉल के लिए देखने के लिए कह सकते हैं।
-W पैरामीटर फाइलों / निर्देशिकाओं को देखने के लिए उपयोगी है, लेकिन जैसा कि मैन पेज बताता है कि कैविएट हैं।
पथ पर फ़ाइल सिस्टम ऑब्जेक्ट के लिए एक घड़ी डालें। आप शीर्ष स्तर की निर्देशिका में घड़ी नहीं डाल सकते। यह कर्नेल द्वारा निषिद्ध है। वाइल्डकार्ड या तो समर्थित नहीं हैं और एक चेतावनी उत्पन्न करेंगे। जिस तरह से काम देखता है वह आंतरिक रूप से इनकोड को ट्रैक करने से है। इसका मतलब यह है कि यदि आप एक निर्देशिका पर नजर रखते हैं, तो आप देखेंगे कि क्या फ़ाइल ईवेंट दिखाई देता है, लेकिन यह वास्तव में केवल मेटा डेटा का अद्यतन है। ऐसा करने से आप कुछ घटनाओं को याद कर सकते हैं। यदि आपको एक निर्देशिका में सभी फ़ाइलों को देखने की आवश्यकता है, तो इसकी सिफारिश प्रत्येक फ़ाइल पर एक व्यक्तिगत घड़ी लगाने की है। Syscall ऑडिटिंग नियमों के विपरीत, घड़ियां कर्नेल को भेजे गए नियमों की संख्या के आधार पर प्रदर्शन को प्रभावित नहीं करती हैं।