किसी प्रक्रिया द्वारा खोली / एक्सेस की गई फ़ाइलों की निरंतर निगरानी करें


25

lsof -p 12345 प्रक्रिया द्वारा खोली गई सभी फाइलों को सूचीबद्ध करेगा जिनकी पिड 12345 है, लेकिन केवल एक विशेष समय के लिए।

हम अपने पूरे जीवनकाल में प्रक्रिया द्वारा एक्सेस की गई हर एक फ़ाइल को सूचीबद्ध / दिखाने के लिए शुरू से अंत तक (प्रक्रिया समाप्त होने तक) किसी प्रक्रिया की निरंतर निगरानी कैसे कर सकते हैं?


जवाबों:


31

के साथ प्रयास करें strace -p 12345; यह वही करना चाहिए जो आप प्राप्त करने की कोशिश कर रहे हैं।

आउटपुट केवल खुली हुई फ़ाइलों को प्रदर्शित करने के लिए फ़िल्टर किया जा सकता है ( Dan D. की टिप्पणी ):

strace -e open -p 12345

नोट: आप जल्दी से चल रही प्रक्रियाओं का भी पता लगा सकते हैं strace -e open <command>


उत्पादन अनुकूल नहीं है और बहुत अधिक अतिरिक्त चीजें हैं।
एमए 1

आप पाइपिंग द्वारा इसे ठीक कर सकते हैं - strace -p {pid} | grep -i "Open" | tee files_opened.log। कुंजी वह है grep, जो आपको आपके इच्छित सिस्टम कॉल के लिए आउटपुट को फ़िल्टर करने देता है (उदाहरण के लिए open())।

11
@Ninefingers वास्तव में विकल्प straceसे बेहतर कर सकते हैं :grep-estrace -e open
Dan D.

@ दान ओह, हाँ,

जब मैं स्ट्रेस कमांड को मारता हूं, तो यह उस चीज को भी मार देता है जो यह ट्रेसिंग है। ऐसा (साइबरविन) क्यों हो रहा है?
CMCDragonkai

6

नई उपयोगिता फेट्रेस यह करेगी: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

-P विकल्प का उपयोग न करें, इसका अर्थ है कि इसके विपरीत जो lsof या अन्य उपयोगिताओं में इसका मतलब है।


3

यह आपके आदेश को फिर से चलाएगा और हर बार स्क्रीन को साफ़ करेगा:

watch "lsof -p 12345"

चेतावनी: यह त्वरित फ़ाइल एक्सेस को याद करेगा और केवल लंबे समय तक चलने वाली फ़ाइलों को देखने के लिए उपयुक्त है


2
यह उपयोग करने वाले अन्य उत्तर की तुलना में कुछ अनाड़ी है strace
डेविड फ़ॉस्टर

1
यह गलत समाधान है - एक प्रक्रिया फाइलों का उपयोग करने के बीच में फाइल कर सकती हैlsof
डोर

@ के लिए आप lsof का समय 1 सेकंड सेट कर सकते हैं और इसे सटीक रूप से बढ़ा सकते हैं। हालांकि यह दूसरों की तुलना में अनाड़ी है, आप गलत हैं कि यह एक गलत समाधान है।
जॉर्डन बेडवेल

यदि आपकी एक लंबी फ़ाइल ऑपरेशन (डेटाबेस बैकअप की तरह) को देखते हुए यह एक अच्छा सरल विकल्प हो सकता है।
jcalfee314
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.