बैश जैसे यूनिक्स/लिनक्स शेल प्रोग्राम का एक शक्तिशाली पहलू, सामान्य प्रोग्रामिंग कंस्ट्रक्ट्स के लिए उनका अद्भुत समर्थन है जो आपको निर्णय लेने, कमांड्स को बार-बार निष्पादित करने, नए फंक्शन्स बनाने, और बहुत कुछ करने में सक्षम बनाता है। आप कमांड्स को एक फ़ाइल में लिख सकते हैं जिसे शेल स्क्रिप्ट के रूप में जाना जाता है और उन्हें सामूहिक रूप से निष्पादित कर सकते हैं।
यह आपको सिस्टम एडमिनिस्ट्रेशन का एक विश्वसनीय और प्रभावी साधन प्रदान करता है। आप कार्यों को स्वचालित करने के लिए स्क्रिप्ट लिख सकते हैं, उदाहरण के लिए दैनिक बैकअप, सिस्टम अपडेट आदि; नए कस्टम कमांड्स/यूटिलिटीज/टूल्स बना सकते हैं और बहुत कुछ। आप स्क्रिप्ट लिख सकते हैं जो आपको सर्वर पर क्या हो रहा है, उससे अपडेट रहने में मदद करें।
सर्वर के महत्वपूर्ण घटकों में से एक मेमोरी (RAM) है, यह सिस्टम के समग्र प्रदर्शन को बहुत प्रभावित करती है।
इस लेख में, हम एक छोटी लेकिन उपयोगी शेल स्क्रिप्ट साझा करेंगे जो एक या अधिक सिस्टम एडमिनिस्ट्रेटर(s) को अलर्ट ईमेल भेजेगी, यदि सर्वर मेमोरी कम चल रही है।
यह स्क्रिप्ट विशेष रूप से Linux VPS (वर्चुअल प्राइवेट सर्वर्स) पर नज़र रखने के लिए उपयोगी है जिनमें कम मात्रा में मेमोरी है, लगभग 1GB (लगभग 990MB)।
टेस्टिंग एनवायरनमेंट सेटअप
- एक CentOS/RHEL 7 प्रोडक्शन सर्वर जिसमें mailx यूटिलिटी इंस्टॉल है और वर्किंग पोस्टफिक्स मेल सर्वर है।
यह है कि alertmemory.sh स्क्रिप्ट कैसे काम करती है: पहले यह फ्री मेमोरी साइज़ की जांच करती है, फिर निर्धारित करती है कि फ्री मेमोरी की मात्रा निर्दिष्ट आकार (100 MB इस गाइड के उद्देश्य के लिए) से कम या बराबर है या नहीं, जिसे न्यूनतम स्वीकार्य फ्री मेमोरी आकार के लिए बेंचमार्क के रूप में उपयोग किया जाता है।
यदि यह शर्त सत्य है, तो यह सर्वर RAM का उपभोग करने वाली शीर्ष 10 प्रक्रियाओं की एक सूची तैयार करेगी और निर्दिष्ट ईमेल पतों पर एक अलर्ट ईमेल भेजेगी।
नोट: आपको स्क्रिप्ट में कुछ बदलाव करने होंगे (विशेष रूप से मेल सेंडर यूटिलिटी, उपयुक्त फ्लैग्स का उपयोग करें) ताकि यह आपके लिनक्स डिस्ट्रीब्यूशन की आवश्यकताओं को पूरा करे।
सर्वर मेमोरी जांचने के लिए शेल स्क्रिप्ट
#!/bin/bash ####################################################################################### #Script Name :alertmemory.sh #Description :सर्वर मेमोरी कम होने पर अलर्ट मेल भेजें #Args : #Author :Aaron Kili Kisinga #Email :admin@wsxdn.com #License : GNU GPL-3 ####################################################################################### ## मेल वेरिएबल्स घोषित करें ##ईमेल विषय subject="Server Memory Status Alert" ## भेजने वाला from="admin@wsxdn.com" ## प्राप्तकर्ता to="admin@wsxdn.com" ## कार्बन कॉपी भी भेजें also_to="admin@wsxdn.com" ## मेगाबाइट्स (MB) में कुल फ्री मेमोरी साइज़ प्राप्त करें free=$(free -mt | grep Total | awk '{print $4}') ## जांचें कि क्या फ्री मेमोरी 100MB से कम या बराबर है if [[ "$free" -le 100 ]]; then ## सिस्टम मेमोरी का उपभोग करने वाली शीर्ष प्रक्रियाएं प्राप्त करें और अस्थायी फ़ाइल में सेव करें ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt file=/tmp/top_proccesses_consuming_memory.txt ## यदि सिस्टम मेमोरी कम चल रही है तो ईमेल भेजें echo -e "Warning, server memory is running low!\n\nFree memory: $free MB" | mailx -a "$file" -s "$subject" -r "$from" -c "$to" "$also_to" fi exit 0 अपनी स्क्रिप्ट /etc/scripts/alertmemory.sh बनाने के बाद, इसे एक्जीक्यूटेबल बनाएं और cron.hourly से सिमलिंक करें।
# chmod +x /etc/scripts/alertmemory.sh # ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh
इसका मतलब है कि उपरोक्त स्क्रिप्ट हर 1 घंटे के बाद तब तक चलेगी जब तक सर्वर चल रहा है।
टिप: आप जांच सकते हैं कि यह इरादे के अनुसार काम कर रहा है या नहीं, बेंचमार्क मान को थोड़ा ऊंचा सेट करके आसानी से ईमेल भेजने को ट्रिगर करें, और लगभग 5 मिनट का एक छोटा अंतराल निर्दिष्ट करें।
फिर स्क्रिप्ट में दिए गए free कमांड का उपयोग करके कमांड लाइन से जांचते रहें। एक बार जब आप पुष्टि कर लें कि यह काम कर रहा है, तो उन वास्तविक मानों को परिभाषित करें जिनका आप उपयोग करना चाहते हैं।
नीचे एक स्क्रीनशॉट है जो एक नमूना अलर्ट ईमेल दिखा रहा है।
बस इतना ही! इस लेख में, हमने समझाया कि सर्वर मेमोरी (RAM) कम होने पर सिस्टम एडमिनिस्ट्रेटर्स को अलर्ट ईमेल भेजने के लिए शेल स्क्रिप्ट का उपयोग कैसे करें। आप इस विषय से संबंधित कोई भी विचार हमारे साथ फीडबैक फॉर्म के माध्यम से साझा कर सकते हैं।