निर्धारित करें कि कौन सी फाइलें एक प्रक्रिया द्वारा एक्सेस की जा रही हैं


9

मैं उन सभी फाइलों को कैसे पता लगाऊंगा जो किसी विशेष प्रक्रिया को एक्सेस करती हैं?

मैं Ubuntu 9.04 का उपयोग कर रहा हूं।

जवाबों:


11

lsof खुली फाइलों और संबंधित प्रक्रिया आईडी को सूचीबद्ध करेगा। यदि कोई विकल्प नहीं दिया जाता है तो यह सब कुछ सूचीबद्ध करता है।

-pएक प्रक्रिया के लिए खुली फाइलों को सूचीबद्ध करने के लिए एक विकल्प है। तो PID 6714 के साथ एक प्रक्रिया के लिए यह उस प्रक्रिया द्वारा खोली गई फ़ाइलों को सूचीबद्ध करेगा:

    lsof -p 6714

सूची में केवल नियमित रूप से फ़ाइलों ग्रेप lsof के उत्पादन में फिल्टर करने के लिए इस्तेमाल किया जा सकता:

    lsof -p 6714 | grep REG

अगर इसे grep से अधिक मजबूत बनाने की आवश्यकता है तो -Fविकल्प का उपयोग किया जा सकता है, लेकिन तब यह अधिक जटिल हो जाता है। से lsof आदमी पेज :

जब -F विकल्प निर्दिष्ट किया जाता है, तो lsof ऐसे आउटपुट का उत्पादन करता है जो किसी अन्य प्रोग्राम द्वारा प्रसंस्करण के लिए उपयुक्त होता है - जैसे, एक awk या पर्ल स्क्रिप्ट, या C प्रोग्राम।

यह आपकी आवश्यकताओं पर निर्भर करता है।


1
मुझे lsof में '-b' जोड़ना पसंद है, यह थोड़ा जल्दी जाएगा। इसके अलावा, मैं पाइप से पहले 2> / dev / null जोड़ देता हूं।
kbyrd
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.