मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मैं किसी अन्य दृष्टिकोण का सुझाव दूंगा जब कोई इसे उपयोगी समझेगा। मैंने मूल रूप से इसे एक प्रश्न के उत्तर के रूप में पोस्ट किया था जिसे इस एक को धोखा दिया गया था।
एक विकल्प का उपयोग करना है 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>
"खुदाई" (जो आपको ऊपर दिए गए कमांड के समान आउटपुट दिखाएगा) को दबाएं । इसके साथ, आप उस प्रक्रिया के बारे में जानकारी प्राप्त करने के लिए उसी दृष्टिकोण का उपयोग कर सकते हैं जिसने वास्तव में फ़ाइल बनाई थी।
वहाँ की एक जीयूआई संस्करण है csysdig
कहा जाता है sysdig-inspect
, अगर है कि अधिक चाय के अपने कप है।