मुखपृष्ठ » कैसे » हेडलेस लिनक्स सर्वर के लिए हार्ड ड्राइव मॉनिटर स्क्रिप्ट

    हेडलेस लिनक्स सर्वर के लिए हार्ड ड्राइव मॉनिटर स्क्रिप्ट

    आधुनिक हार्ड ड्राइव में S.M.A.R.T नामक एक आंतरिक तंत्र होता है। जिसके माध्यम से यह जानना संभव है कि हार्ड डिस्क कब विफल होने वाली है। क्या ऐसी विफलता से पहले आपको ईमेल करना सर्वर के लिए अच्छा नहीं होगा?

    अवलोकन

    "Mdadm" (सॉफ़्टवेयर RAID प्रबंधन के लिए) और "पालिम्प्सेस्ट डिस्क यूटिलिटी" (उबंटू लाइवसीडी पर इस्तेमाल किया गया) जैसे कार्यक्रम, डिस्क के बारे में या विफल होने पर आपको सूचित करने के लिए S.M.A.R.T जानकारी का उपयोग करते हैं। हालांकि एक हेडलेस सर्वर (कोई GUI) पर कोई सेवा नहीं है जो आपको बहुत देर होने से पहले लंबित कयामत की सूचना देगी। इसके अलावा, आप सर्वर में मैन्युअल रूप से प्रवेश किए बिना इसके बारे में कैसे जानेंगे?

    यह स्क्रिप्ट, जब क्रोन के साथ दिन में एक बार चलाया जाता है, तो यदि सिस्टम की हार्ड ड्राइव खराब सेक्टरों में से किसी एक की गिनती एक सीमा तक पहुंच गई है, तो यह जानबूझकर कम है कि "डिस्क खराब है" सीमा तक पहुंच गई है, और मशीन के व्यवस्थापक को चेतावनी ईमेल करें.

    पूर्वापेक्षाएँ और धारणाएँ

    • आपके पास पहले से ही "लिनक्स पर ईमेल अलर्ट सेट करें" गाइड का उपयोग करके सर्वर के लिए ईमेल समर्थन सेटअप है.
    • आप एक डेबियन आधारित प्रणाली का उपयोग कर रहे हैं.
    • आप एक * हार्डवेयर RAID नियंत्रक का उपयोग नहीं कर रहे हैं.
    • आप मुझे संपादक कार्यक्रम के रूप में वीआईएम का उपयोग करते हुए देखेंगे, यह सिर्फ इसलिए है क्योंकि मैं इसका उपयोग कर रहा हूं ... आप किसी अन्य संपादक का उपयोग कर सकते हैं जो आप चाहते हैं.

    * क्योंकि यह बहुत संभव है कि हार्डवेयर RAID नियंत्रक इस जानकारी तक सिस्टम की पहुंच को अवरुद्ध करता है.

    सेट अप

    “स्मार्टमोनटूल” पैकेज स्थापित करें जो हार्ड ड्राइव नियंत्रक से S.M.A.R.T जानकारी को पढ़ता है और इसे हमारे सामने प्रस्तुत करता है.

    sudo एप्टीट्यूड स्मार्टमोंटूल स्थापित करते हैं

    मॉनिटर स्क्रिप्ट बनाएं:

    सूदो विम / अरोट /स्मार्ट- समिटर.श

    इसे सामग्री बनाएं:

    #! / Bin / bash
    ######## ईमेल समारोह ########
    email_admin_func ()

    इको "टू: मशीन[email protected]"> $ temp_email_file
    इको "from: [email protected]" >> $ temp_email_file
    इको "विषय: S.M.A.R.T मॉनिटर थ्रेसहोल्ड का उल्लंघन" >> $ temp_email_file
    गूंज "" >> $ temp_email_file
    गूंज -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    गूंज "व्यवस्थापक को एक ईमेल भेजा गया"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11

    ######## क्रियाओं का अंत ########

    ######## वर्किंग पैरामीटर सेट करें ########
    temp_email_file = / tmp / smart_monitor.txt
    अनुमत_थ्रेशोल्ड = 5 # 5 के साथ रहने के लिए आपके द्वारा तैयार किए जाने वाले बुरे क्षेत्रों की मात्रा, 5 की सिफारिश की.

    ######## इंजन ########
    के लिए मैं एसडीए एसडीबी में; अपने सेटअप के लिए उपयुक्त के रूप में # इस सूची से डिस्क नाम जोड़ें या घटाना.
    अगर [['' smartc_func $ i '' -ge $ allow_threshold]]; फिर
    इको ईमेल व्यवस्थापक
    email_admin_func "" होस्टनाम 'पर HD में से एक, ऊपरी सीमा सीमा तक पहुँच गया है !!! n थ्रेशोल्ड सेट किया गया था: $ अनुमत_थ्रॉल्ड और $ i डिस्क की स्थिति थी: "' smartc -func $ i '" "
    फाई
    किया हुआ

    नोट करने के लिए प्रमुख बिंदु हैं:

    • ईमेल फ़ंक्शन - मशीन का नाम और व्यवस्थापक ईमेल जैसी उपयुक्त जानकारी सेट करें.
    • अनुमत सीमा - इस पैरामीटर को सेट करें जो आपको उचित लगता है, मैंने 5 का उपयोग किया है क्योंकि "सर्वर ग्रेड" हार्ड ड्राइव के लिए उपयोग की जाने वाली सीमा 10 थी। 10. (मुझे "उपभोक्ता ग्रेड" ड्राइव के लिए सीमा मिली 140 जितना अधिक हो).
    • उन उपकरणों को सेट करें जिन्हें आप "के लिए" लूप में डिस्क नामों की गणना को समायोजित करके मॉनिटर करना चाहते हैं। वर्तमान में दो डिस्क (एसडीए और एसडीबी) शामिल हैं, इसलिए अपने सेटअप के लिए समायोजित करें। आप अपने सभी डिस्क या बस कुछ शामिल कर सकते हैं, अगर आपको किसी कारण से डिस्क को * बाहर करने की आवश्यकता है.

    * मेरे मूल सेटअप में पहली डिस्क एक फ्लैश ड्राइव थी जिससे इसकी जानकारी पढ़ी जा सकती है यदि संभव नहीं है तो यह बहुत अधिक उपयोग की है.

    स्क्रिप्ट को निष्पादन योग्य बनाएं:

    सुडो चामोद + x /root/smart-monitor.sh

    सेटअप हो चुका है.

    स्क्रिप्ट को स्वचालित रूप से चलाने के लिए शेड्यूल करें

    हम स्क्रिप्ट को स्वचालित रूप से चलाना चाहते हैं इसलिए हम इसके लिए एक नई क्रॉन जॉब बनाएंगे.
    जैसा कि "लिनक्स पर ईमेल अलर्ट सेट करने के तरीके" में कहा गया है, ऐसा करने की अपशॉट को गाइड करता है, यदि स्क्रिप्ट स्वयं एक त्रुटि का सामना करती है, तो क्रोन स्वचालित रूप से ईमेल के माध्यम से हमें सूचित करेगा जैसे ही यह होता है.

    क्रॉन जॉब शेड्यूलर खोलें:

    सुडो क्रैताब-ई

    इसे इसकी सामग्री में जोड़ें:

    0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_shun.log

    यह हर सुबह 7 बजे चलाने के लिए स्क्रिप्ट सेट करेगा.


    आपके सभी क्षेत्र हमारे हैं :)