2012-08-11 13 views
5

के साथ सरल रिमोट प्रक्रिया की निगरानी मैं लिनक्स सर्वर पर चल रहे दूरस्थ प्रक्रियाओं की कुछ बहुत ही सरल "एजेंट रहित" निगरानी करने के लिए एक पायथन स्क्रिप्ट लिखना चाहता हूं।पायथन

यह psuedocode में, निम्न कार्य करने होंगे:

for each remoteIPAddress in listOfIPAddresses: 
    log into [email protected] via ssh 
    execute the equivalent of a 'ps -ef' command 
    grep the result to make sure a particular process (by name) is still running 

एक तरीका यह करने के लिए एक उपप्रक्रिया में अजगर कॉल शेल स्क्रिप्ट है और उनके उत्पादन पार्स करने के लिए है। यह बहुत अक्षम लगता है। क्या पाइथन पुस्तकालयों के माध्यम से ऐसा करने का कोई बेहतर तरीका है?

सभी मैं यहाँ और कहीं और अनुसंधान के माध्यम से मिल सकता है था:

  • psutil - ऐसा लगता है कि दूरदराज के निगरानी नहीं करता है, तो मैं एजेंट के माध्यम से वापस आंकड़ों की रिपोर्ट करने के लिए दूरस्थ मशीन पर चलने के लिए होगा आरपीसी।
  • pymeter - मुझे एक विशिष्ट दूरस्थ सेवा की निगरानी के लिए अपनी खुद की प्लगइन लिखनी होगी।
  • stackoverflow #4546492 - कुछ उपयोगी लिंक लेकिन पोस्टर एक अलग समाधान की तलाश में था।

धन्यवाद और कृपया मुझ पर आसान जाओ, यह मेरी पहली सवाल :-)

+0

http://www.noah.org/python/pexpect/ मुझे लगता है कि –

+0

धन्यवाद। मैंने इसे डाउनलोड किया है और फैब्रिक (नीचे) के साथ समानांतर में मूल्यांकन करेगा। – tohster

उत्तर

3

Fabric लाइब्रेरी आपके लिए रूचि रख सकती है।

+0

फैब्रिक से +1, पाइथन से शैल स्क्रिप्ट के स्थान पर लिखने और बनाए रखने के लिए ऐसी चीज को और अधिक कुशल बनाता है। –

+0

बहुत बहुत धन्यवाद। ऐसा लगता है कि मुझे एसएसएच कमांड का उपयोग करके इसके मूल को अभी भी करने की आवश्यकता होगी, लेकिन फैब्रिक ने इसे और अधिक सुंदर ढंग से लपेट लिया है, क्योंकि मैं खुद को एक साथ जोड़ने की उम्मीद कर सकता था। शीघ्र सुझाव की सराहना करें! – tohster

1

चेक बाहर paramiko है। आप इसे सर्वर में ssh करने और कमांड चलाने के लिए उपयोग कर सकते हैं। फिर आप परिणामों को पार्स कर सकते हैं और जो भी आप चाहते हैं उसे कर सकते हैं।

+0

सुझाव के लिए धन्यवाद। मुझे लगता है कि मैं फैब्रिक से शुरू करूंगा लेकिन यह योजना बी है और एक अच्छा जवाब है। – tohster

+0

फैब्रिक और पैरामीको दोनों में देखा गया। मैं इस जवाब को स्वीकार कर रहा हूं क्योंकि यह मूल प्रश्न के सबसे नज़दीक अनुरूप है। – tohster

0

यह जो भी आप खोज रहे हैं उससे अधिक भारी हो सकता है, लेकिन Zenoss एजेंट रहित निगरानी का समर्थन करता है।

पैरामीको और फैब्रिक, अन्य उत्तरों में सुझाए गए, भी बहुत अच्छे विकल्प हैं।

+0

धन्यवाद। एक वाणिज्यिक उत्पाद की तरह दिखता है, इसलिए मैं इसे बाद में स्केलिंग के लिए अपनी नोटबुक में रखूंगा। – tohster

+0

यह खुला स्रोत है, लेकिन उनके पास एक व्यावसायिक संस्करण भी है। –

0

ऊपर दिए गए उत्तरों से संकेत प्राप्त करते हुए, मैंने फैब्रिक की जांच की और निम्नलिखित प्रस्तुति विशेष रूप से दिलचस्प/सहायक पाया। सर्वर निगरानी और प्रशासन के लिए यह तीन पुस्तकालयों - फैब्रिक, व्यंजन और वॉचडॉग का एक सिंहावलोकन है। भावी पीढ़ी के लिए:

Using Fabric, Cuisine, and Watchdog for server administration in Python

0

तुम क्यों Nagios जैसे एक समर्पित निगरानी उपकरण का उपयोग नहीं करते हैं? नागियोस में एजेंट और एजेंट एनआरपीई प्लगइन्स और एसएसएच प्लगइन्स इत्यादि के माध्यम से कम निगरानी रखते हैं इसे आज़माएं।