मॉनिटर कैसे करें कि फाइलें क्या खोली जाती हैं


9

क्या यह देखने के लिए एक उपकरण है कि कौन सी प्रक्रियाएँ सिस्टम पर क्या फ़ाइल खोलती हैं ताकि आप नीचे ट्रैक कर सकें कि कौन सी प्रक्रिया किसी विशिष्ट फ़ाइल को छूती रहती है?

Lsof यह पता लगा सकता है कि क्या आप इसे चलाते हैं, जबकि इस प्रक्रिया में फ़ाइल खुली है, लेकिन यदि यह एक अल्पकालिक प्रक्रिया है जो हर एक बार थोड़ी देर में चलती है, तो आप इसे lsof के साथ नहीं पकड़ सकते। कुछ ऐसा चाहिए जो कर्नेल ट्रेसिंग का उपयोग करे।


क्या आपने चेक आउट किया है? उदाहरण के लिए @ Kees का उत्तर यहां देखें: askubuntu.com/questions/25442/… मेरे उत्तर के लिंक यहां दिए गए हैं: askubuntu.com/questions/29566/…
belacqua

@jgbelacua दोनों में से कोई भी ऐसा नहीं है जिसकी मुझे तलाश है। Inotify आपको बता सकता है कि किसी दी गई फ़ाइल को कब छुआ गया है, और lsof आपको बता सकता है कि किसी प्रक्रिया की क्या फ़ाइलें हैं, या किस प्रक्रिया की एक फ़ाइल खुली है, लेकिन मुझे यह पता लगाने की आवश्यकता है कि कौन सी प्रक्रिया किसी फ़ाइल को छूती रहती है, फिर उसे बंद करने से पहले मैं उसे बता सकता हूं। इसे पकड़ने के लिए lsof चलाएं।
Psusi

सम्बंधित: askubuntu.com/questions/24512/…
14ndrük

जवाबों:


7

आप शायद इसके लिए ऑडिट प्रणाली का उपयोग कर सकते हैं। यह थोड़ा भारी है, लेकिन कुछ इस तरह से काम करना चाहिए (/etc/audit/audit.rules में):

# delete all other rules
-D

# watch the file in question
-w /path/to/file -p rwxa

और फिर मुझे लगता है कि आपको ऑडिट पुनः आरंभ करने की आवश्यकता है:

sudo service audit restart

(यदि आपने इसे स्थापित नहीं किया है, तो यह पैकेज ऑडिट में है।) अपराधी को तब /var/log/audit/audit.log में पाया जा सकता है।


उत्तम! यह वहीं है जिसे मैं ढूंढ रहा था।
Psusi

0

दुर्भाग्य से तंत्र लिनक्स एक का उपयोग करने के लिए फ़ाइलों की निगरानी के लिए एक inotify है, जो उपयोगी डेटा निकालने के लिए पर्याप्त जानकारी प्रदान नहीं करता है: आपको केवल फ़ाइल नाम और कार्रवाई की गई थी।

मैंने कुछ इस तरह का उपयोग करने की कोशिश की है:

sudo inotifywait -mr somedir --format "%w%f" | while read file; do echo -n "$file => ";lsof -b $file; echo ""; done

यह निर्दिष्ट निर्देशिका पर ईवेंट को सम्मिलित करने के लिए सुनता है और प्रत्येक ईवेंट के लिए यह फ़ाइल को छूने वाली प्रक्रिया को पकड़ने के लिए lsof चलाता है। दुर्भाग्य से अधिकांश एक्सेस के लिए जो मैंने परीक्षण किया (जैसे कि फ़ाइल में लिखने के लिए संपादक का उपयोग करना) एलएसओएफ कमांड सिर्फ धीमा है और आपत्तिजनक प्रक्रिया को पकड़ने का प्रबंधन नहीं करता है।

यदि आपकी प्रक्रियाएँ समस्याग्रस्त फ़ाइलों पर कुछ अधिक गहन IO करती हैं, तो आपका लाभ भिन्न हो सकता है। सौभाग्य।


0

fnotifystat एक उपकरण है जिसे linux फ़ाइल गतिविधि देखने के लिए डिज़ाइन किया गया है

sudo apt-get install fnotifystat
sudo fnotifystat
Total   Open  Close   Read  Write   PID  Process         Pathname
  7.0    1.0    1.0    5.0    0.0   2075 libvirtd        /proc/cpuinfo
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/physical_package_id
  6.0    2.0    2.0    2.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/physical_package_id
  4.0    1.0    1.0    2.0    0.0   2075 libvirtd        /sys/devices/system/node
  4.0    1.0    1.0    2.0    0.0   2075 libvirtd        /sys/devices/system/node/node0
  4.0    2.0    2.0    0.0    0.0  15313 gnome-calendar  /usr/share/zoneinfo/Europe/London
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu1/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu2/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/core_id
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/cpu3/topology/thread_siblings_list
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/online
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/cpu/present
  3.0    1.0    1.0    1.0    0.0   2075 libvirtd        /sys/devices/system/node/node0/meminfo
  2.0    0.0    0.0    0.0    2.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-release.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-desktop.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-devel.log
  1.0    0.0    0.0    0.0    1.0  12174 xchat           /home/cking/.xchat2/xchatlogs/FreeNode-#ubuntu-kernel.log

जब तक रोका नहीं जाता तब तक हर 60 सेकंड में शीर्ष 10 सक्रिय फ़ाइलें दिखाएं:

sudo fnotifystat -t 10 60

हर 10 सेकंड में सिर्फ 6 बार फाइल एक्टिविटी दिखाएं:

sudo fnotifystat 10 6

थंडरबर्ड और प्रक्रिया आईडी 1827 की फ़ाइल गतिविधि दिखाएं:

sudo fnotifystat -p thunderbird,1827

5 मिनट की एक अवधि में हर फ़ाइल को सूचित करें घटना और शीर्ष 20 सक्रिय गतिविधि फ़ाइलों को दिखाएँ:

sudo sudo notifystat -v -d -c 5m 1

बस हर फ़ाइल को सूचित करें / sys और / proc पर घटना और समय-समय पर सांख्यिकी न दिखाएं:

sudo fnotifystat -n -i /sys,/proc

अधिक जानकारी के लिए fnotifystat मैन पेज से परामर्श करें, यह काफी लचीला उपकरण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.