एक शेल स्क्रिप्ट ईमेल अलर्ट भेजने के लिए जब मेमोरी कम हो जाती है
यूनिक्स/लिनक्स शेल कार्यक्रमों का एक शक्तिशाली पहलू जैसे कि bash , आम प्रोग्रामिंग निर्माणों के लिए उनका अद्भुत समर्थन है जो आपको निर्णय लेने, बार-बार आदेशों को निष्पादित करने, नए कार्यों को बनाने और बहुत कुछ करने में सक्षम बनाता है। आप शेल स्क्रिप्ट के रूप में ज्ञात फ़ाइल में कमांड लिख सकते हैं और उन्हें सामूहिक रूप से निष्पादित कर सकते हैं।
यह आपको सिस्टम प्रशासन का एक विश्वसनीय और प्रभावी साधन प्रदान करता है। आप कार्यों को स्वचालित करने के लिए स्क्रिप्ट लिख सकते हैं, उदाहरण के लिए दैनिक बैक अप, सिस्टम अपडेट आदि; नए कस्टम कमांड/यूटिलिटीज/टूल्स और उससे आगे बनाएं। किसी सर्वर पर क्या-क्या चल रहा है, इसके बारे में जानने के लिए आप स्क्रिप्ट लिख सकते हैं।
सर्वर के महत्वपूर्ण घटकों में से एक मेमोरी है ( RAM ), यह सिस्टम के समग्र प्रदर्शन पर बहुत प्रभाव डालता है।
इस लेख में, हम सर्वर या मेमोरी कम चल रहा है, तो एक या अधिक सिस्टम एडमिनिस्ट्रेटर (ओं) को अलर्ट ईमेल भेजने के लिए एक छोटी लेकिन उपयोगी शेल स्क्रिप्ट साझा करेंगे।
यह लिपि विशेष रूप से लिनक्स VPS ( वर्चुअल प्राइवेट सर्वर ) पर कम मात्रा में स्मृति रखने के लिए उपयोगी है, 1GB के बारे में कहें लगभग 990MB )।
- A CentOS/RHEL 7 production server with mailx utility installed with working postfix mail server.
यह इस तरह से है alertmemory.sh स्क्रिप्ट काम करता है: पहले यह मुफ्त मेमोरी साइज की जांच करता है, फिर निर्धारित करता है कि फ्री मेमोरी की मात्रा एक निर्दिष्ट आकार के बराबर या कम है ( 100 MB इस गाइड के उद्देश्य के लिए), कम से कम स्वीकार्य मुक्त स्मृति आकार के लिए एक बेंच मार्क के रूप में उपयोग किया जाता है।
यदि यह स्थिति सही है, तो यह सर्वर रैम की खपत करने वाली शीर्ष 10 प्रक्रियाओं की एक सूची उत्पन्न करेगा और निर्दिष्ट ईमेल पते पर एक अलर्ट ईमेल भेजेगा।
#!/bin/bash ####################################################################################### #Script Name :alertmemory.sh #Description :send alert mail when server memory is running low #Args : #Author :Aaron Kili Kisinga #Email :[email #License : GNU GPL-3 ####################################################################################### ## declare mail variables ##email subject subject="Server Memory Status Alert" ##sending mail as from="[email " ## sending mail to to="[email " ## send carbon copy to also_to="[email " ## get total free memory size in megabytes(MB) free=$(free -mt | grep Total | awk '{print $4}') ## check if free memory is less or equals to 100MB if [[ "$free" -le 100 ]]; then ## get top processes consuming system memory and save to temporary file ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt file=/tmp/top_proccesses_consuming_memory.txt ## send email if system memory is running low 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 , इसे क्रॉन के लिए निष्पादन योग्य और सहिष्णु बनाएं।
# chmod +x /etc/scripts/alertmemory.sh # ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh
इसका मतलब है कि उपरोक्त स्क्रिप्ट को हर 1 घंटे के बाद चलाया जाएगा जब तक कि सर्वर चल रहा है।
फिर स्क्रिप्ट में दिए गए मुफ्त कमांड का उपयोग करके कमांड लाइन से जांच करते रहें। एक बार जब आप पुष्टि कर लेते हैं कि यह काम कर रहा है, तो उन वास्तविक मूल्यों को परिभाषित करें जिनका आप उपयोग करना चाहते हैं। नीचे एक स्क्रीनशॉट दिखाया गया है जिसमें एक नमूना चेतावनी ईमेल है। बस इतना ही! इस आलेख में, हमने समझाया कि कैसे शेल सर्वर का उपयोग करने के लिए सिस्टम प्रशासक को अलर्ट ईमेल भेजने के लिए केस सर्वर मेमोरी (रैम) कम चल रहा है। आप इस विषय से संबंधित कोई भी विचार हमारे साथ साझा कर सकते हैं, नीचे दिए गए फीडबैक फॉर्म के माध्यम से।