फ़ाइल में परिवर्तन की निगरानी + फ़ाइलों तक पहुँचने की प्रक्रिया


19

मैं देखना चाहूंगा कि मेरे ऐप सर्वर फ़ोल्डर में क्या हो रहा है, अर्थात प्रक्रिया x द्वारा कौन सी फाइलें बदली गई हैं या कौन सी *.warफाइलें अंतिम x मिनटों में बदल दी गई हैं (बदल / बनाई गई हैं)।

क्या इसके साथ मदद करने के लिए लिनक्स में कोई उपकरण है?


नमस्ते, निर्देशिकाओं और फाइलों पर नजर रखने के लिए ऑडिट
Sifungurux

1
मुझे Google खोज के माध्यम से यह प्रश्न मिला, लेकिन मुझे अपना उत्तर यहां मिला: unix.stackexchange.com/questions/18844/…
क्वेंटिन स्कूसन

SystemTap पर एक नज़र डालें। uselessuseofcat.com/?p=281
स्टीव

जवाबों:



14

स्ट्रेस (जैसा कि ऊपर उल्लिखित है) एक निर्दिष्ट चल रहे सॉफ़्टवेयर के कार्यों की जांच करने का एक तरीका है।

कुछ कमांड जैसे watch find dir/ -mmin 1कुछ डायरेक्टरी में पिछले मिनट के बदलाव की जांच करने में भी मदद कर सकते हैं।

वास्तव में आप जो खोज रहे हैं, उसके आधार पर, inotify-tools शायद यहाँ व्यापार का एक और उपकरण है।

उदाहरण के लिए, inotifywait -mr dir/दी गई निर्देशिका में परिवर्तन पर नज़र रखता है और तुरंत आपको किसी फ़ाइल को खोलने / पढ़ने / लिखने की कोशिश करने वाले किसी भी एप्लिकेशन का फीडबैक देता है। हालाँकि, inotify आपको इस बात की प्रतिक्रिया नहीं देता है कि कौन सी एप्लिकेशन या प्रक्रिया फ़ाइल तक पहुँच रही है - जो कुछ स्ट्रेस करती है।

कृपया जानते हैं कि सिस्टम-लेवल मॉनिटरिंग आमतौर पर कुछ एप्लिकेशन कंटेनर वातावरण में चलने वाले जावा सॉफ्टवेयर के लिए सीमित उपयोग की है, जैसा कि आप केवल कंटेनर (जैसे टॉमकैट) को देखते हैं, लेकिन सिस्टम के साथ बातचीत करते हुए वास्तविक एप्लिकेशन (जैसे .war) नहीं।


8

आप इस बारे में जानकारी प्राप्त कर सकते हैं कि कौन सी फाइलें प्रक्रिया द्वारा lsof द्वारा एक्सेस की गई हैं :

 lsof -n -p `pidof your_app`

और इसके विपरीत, आप कुछ फ़ाइल को लिखने / पढ़ने की प्रक्रिया से मुक्त हो सकते हैं:

 lsof -n -t file

6

आप straceकिसी प्रक्रिया के सभी सिस्टम-कॉल की निगरानी के लिए उपयोग कर सकते हैं , जिसमें सभी फ़ाइल एक्सेस शामिल हैं।

एक कार्यक्रम शुरू करते समय:

$ strace ./myserver

आप पीआईडी ​​के माध्यम से एक चल रही प्रक्रिया में स्ट्रेस संलग्न कर सकते हैं:

$ ps aux | grep myserver
me      1859  0.0  0.0  25288   424 ?        Ss   Sep02   0:00 myserver
$ strace -p 1859

पीआईडी ​​द्वारा नहीं फ़ोल्डर द्वारा भी मॉनिटर करने के लिए बहुत अच्छा होगा, धन्यवाद। btw strace -p PID उबंटू में मेरे लिए काम करता है।
मार्टिन वी।

0

watch find dir/ -mmin 1 मेरे लिए काम नहीं किया, क्या किया था बस कॉपी और अंतर:

cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir

यह काफी संसाधन-गहन है, लेकिन यह स्नैपशॉट और diffसमय के बीच सभी परिवर्तनों को दर्शाता है ।

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