मैं देखना चाहूंगा कि मेरे ऐप सर्वर फ़ोल्डर में क्या हो रहा है, अर्थात प्रक्रिया x द्वारा कौन सी फाइलें बदली गई हैं या कौन सी *.war
फाइलें अंतिम x मिनटों में बदल दी गई हैं (बदल / बनाई गई हैं)।
क्या इसके साथ मदद करने के लिए लिनक्स में कोई उपकरण है?
मैं देखना चाहूंगा कि मेरे ऐप सर्वर फ़ोल्डर में क्या हो रहा है, अर्थात प्रक्रिया x द्वारा कौन सी फाइलें बदली गई हैं या कौन सी *.war
फाइलें अंतिम x मिनटों में बदल दी गई हैं (बदल / बनाई गई हैं)।
क्या इसके साथ मदद करने के लिए लिनक्स में कोई उपकरण है?
जवाबों:
स्ट्रेस (जैसा कि ऊपर उल्लिखित है) एक निर्दिष्ट चल रहे सॉफ़्टवेयर के कार्यों की जांच करने का एक तरीका है।
कुछ कमांड जैसे watch find dir/ -mmin 1
कुछ डायरेक्टरी में पिछले मिनट के बदलाव की जांच करने में भी मदद कर सकते हैं।
वास्तव में आप जो खोज रहे हैं, उसके आधार पर, inotify-tools शायद यहाँ व्यापार का एक और उपकरण है।
उदाहरण के लिए, inotifywait -mr dir/
दी गई निर्देशिका में परिवर्तन पर नज़र रखता है और तुरंत आपको किसी फ़ाइल को खोलने / पढ़ने / लिखने की कोशिश करने वाले किसी भी एप्लिकेशन का फीडबैक देता है। हालाँकि, inotify आपको इस बात की प्रतिक्रिया नहीं देता है कि कौन सी एप्लिकेशन या प्रक्रिया फ़ाइल तक पहुँच रही है - जो कुछ स्ट्रेस करती है।
कृपया जानते हैं कि सिस्टम-लेवल मॉनिटरिंग आमतौर पर कुछ एप्लिकेशन कंटेनर वातावरण में चलने वाले जावा सॉफ्टवेयर के लिए सीमित उपयोग की है, जैसा कि आप केवल कंटेनर (जैसे टॉमकैट) को देखते हैं, लेकिन सिस्टम के साथ बातचीत करते हुए वास्तविक एप्लिकेशन (जैसे .war) नहीं।
आप इस बारे में जानकारी प्राप्त कर सकते हैं कि कौन सी फाइलें प्रक्रिया द्वारा lsof द्वारा एक्सेस की गई हैं :
lsof -n -p `pidof your_app`
और इसके विपरीत, आप कुछ फ़ाइल को लिखने / पढ़ने की प्रक्रिया से मुक्त हो सकते हैं:
lsof -n -t file
आप strace
किसी प्रक्रिया के सभी सिस्टम-कॉल की निगरानी के लिए उपयोग कर सकते हैं , जिसमें सभी फ़ाइल एक्सेस शामिल हैं।
एक कार्यक्रम शुरू करते समय:
$ strace ./myserver
आप पीआईडी के माध्यम से एक चल रही प्रक्रिया में स्ट्रेस संलग्न कर सकते हैं:
$ ps aux | grep myserver
me 1859 0.0 0.0 25288 424 ? Ss Sep02 0:00 myserver
$ strace -p 1859