മെമ്മറി കുറയുമ്പോൾ ഇമെയിൽ അലേർട്ട് അയയ്ക്കാൻ ഒരു ഷെൽ സ്ക്രിപ്റ്റ്


ബാഷ് പോലെയുള്ള Unix/Linux ഷെൽ പ്രോഗ്രാമുകളുടെ ഒരു ശക്തമായ വശം, തീരുമാനങ്ങൾ എടുക്കാനും, ആവർത്തിച്ച് കമാൻഡുകൾ നടപ്പിലാക്കാനും, പുതിയ ഫംഗ്ഷനുകൾ സൃഷ്ടിക്കാനും മറ്റും നിങ്ങളെ പ്രാപ്തരാക്കുന്ന പൊതുവായ പ്രോഗ്രാമിംഗ് നിർമ്മാണങ്ങൾക്കുള്ള അവരുടെ അത്ഭുതകരമായ പിന്തുണയാണ്. ഷെൽ സ്ക്രിപ്റ്റ് എന്നറിയപ്പെടുന്ന ഒരു ഫയലിൽ നിങ്ങൾക്ക് കമാൻഡുകൾ എഴുതാനും അവയെ കൂട്ടായി എക്സിക്യൂട്ട് ചെയ്യാനും കഴിയും.

സിസ്റ്റം അഡ്മിനിസ്ട്രേഷന്റെ വിശ്വസനീയവും ഫലപ്രദവുമായ മാർഗ്ഗം ഇത് നിങ്ങൾക്ക് വാഗ്ദാനം ചെയ്യുന്നു. ടാസ്uക്കുകൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന് നിങ്ങൾക്ക് സ്uക്രിപ്റ്റുകൾ എഴുതാം, ഉദാഹരണത്തിന് ദൈനംദിന ബാക്കപ്പുകൾ, സിസ്റ്റം അപ്uഡേറ്റുകൾ തുടങ്ങിയവ; പുതിയ ഇഷ്uടാനുസൃത കമാൻഡുകൾ/യൂട്ടിലിറ്റികൾ/ഉപകരണങ്ങൾ എന്നിവയും അതിനപ്പുറവും സൃഷ്uടിക്കുക. ഒരു സെർവറിൽ എന്താണ് സംഭവിക്കുന്നതെന്ന് അറിയാൻ നിങ്ങളെ സഹായിക്കുന്നതിന് നിങ്ങൾക്ക് സ്ക്രിപ്റ്റുകൾ എഴുതാം.

ഒരു സെർവറിന്റെ നിർണായക ഘടകങ്ങളിലൊന്നാണ് മെമ്മറി (റാം), ഇത് ഒരു സിസ്റ്റത്തിന്റെ മൊത്തത്തിലുള്ള പ്രകടനത്തെ വളരെയധികം സ്വാധീനിക്കുന്നു.

ഈ ലേഖനത്തിൽ, സെർവർ മെമ്മറി കുറവാണെങ്കിൽ, ഒന്നോ അതിലധികമോ സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്റർ(മാർക്ക്) ഒരു അലേർട്ട് ഇമെയിൽ അയയ്uക്കുന്നതിന് ഞങ്ങൾ ചെറുതും എന്നാൽ ഉപയോഗപ്രദവുമായ ഒരു ഷെൽ സ്uക്രിപ്റ്റ് പങ്കിടും.

1GB (ഏകദേശം 990MB) എന്നു പറയുമ്പോൾ ചെറിയ അളവിലുള്ള മെമ്മറിയുള്ള Linux VPS (വെർച്വൽ പ്രൈവറ്റ് സെർവറുകൾ) നിരീക്ഷിക്കുന്നതിന് ഇത് വളരെ ഉപയോഗപ്രദമാണ്.

  1. പ്രവർത്തിക്കുന്ന പോസ്റ്റ്ഫിക്സ് മെയിൽ സെർവറിനൊപ്പം ഇൻസ്റ്റാൾ ചെയ്ത മെയിൽഎക്സ് യൂട്ടിലിറ്റി ഉള്ള ഒരു സെന്റോസ്/ആർഎച്ച്ഇഎൽ 7 പ്രൊഡക്ഷൻ സെർവർ.

Alertmemory.sh സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുന്നത് ഇങ്ങനെയാണ്: ആദ്യം അത് സൗജന്യ മെമ്മറി വലുപ്പം പരിശോധിക്കുന്നു, തുടർന്ന് സൗജന്യ മെമ്മറിയുടെ അളവ് ഒരു നിശ്ചിത വലുപ്പത്തിന് കുറവാണോ അതോ തുല്യമാണോ എന്ന് നിർണ്ണയിക്കുന്നു (ഈ ഗൈഡിന്റെ ഉദ്ദേശ്യത്തിനായി 100 MB), ഇതിനായി ഒരു ബെഞ്ച് മാർക്കായി ഉപയോഗിക്കുന്നു. ഏറ്റവും കുറഞ്ഞ സ്വീകാര്യമായ സൗജന്യ മെമ്മറി വലിപ്പം.

ഈ വ്യവസ്ഥ ശരിയാണെങ്കിൽ, അത് സെർവർ റാം ഉപയോഗിക്കുന്ന മികച്ച 10 പ്രോസസ്സുകളുടെ ഒരു ലിസ്റ്റ് സൃഷ്ടിക്കുകയും നിർദ്ദിഷ്ട ഇമെയിൽ വിലാസങ്ങളിലേക്ക് ഒരു മുന്നറിയിപ്പ് ഇമെയിൽ അയയ്ക്കുകയും ചെയ്യും.

ശ്രദ്ധിക്കുക: നിങ്ങളുടെ Linux ഡിസ്ട്രിബ്യൂഷൻ ആവശ്യകതകൾ നിറവേറ്റുന്നതിനായി സ്uക്രിപ്റ്റിൽ (പ്രത്യേകിച്ച് മെയിൽ അയച്ചയാളുടെ യൂട്ടിലിറ്റി, ഉചിതമായ ഫ്ലാഗുകൾ ഉപയോഗിക്കുക) കുറച്ച് മാറ്റങ്ങൾ വരുത്തേണ്ടതുണ്ട്.

#!/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

നിങ്ങളുടെ സ്uക്രിപ്റ്റ് /etc/scripts/alertmemory.sh സൃഷ്uടിച്ച ശേഷം, അത് എക്uസിക്യൂട്ടബിൾ ആക്കി cron.hourly-ലേക്ക് സിംലിങ്ക് ചെയ്യുക.

# chmod +x /etc/scripts/alertmemory.sh
# ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh

സെർവർ പ്രവർത്തിക്കുന്നിടത്തോളം ഓരോ 1 മണിക്കൂറിന് ശേഷവും മുകളിലുള്ള സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കും എന്നാണ് ഇതിനർത്ഥം.

നുറുങ്ങ്: ഇത് ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം, ഒരു ഇമെയിൽ അയയ്uക്കുന്നതിന് എളുപ്പത്തിൽ ട്രിഗർ ചെയ്യുന്നതിന് ബെഞ്ച് മാർക്ക് മൂല്യം അൽപ്പം ഉയർന്ന് സജ്ജമാക്കുക, ഏകദേശം 5 മിനിറ്റ് ചെറിയ ഇടവേള വ്യക്തമാക്കുക.

തുടർന്ന് സ്ക്രിപ്റ്റിൽ നൽകിയിരിക്കുന്ന ഫ്രീ കമാൻഡ് ഉപയോഗിച്ച് കമാൻഡ് ലൈനിൽ നിന്ന് പരിശോധിക്കുന്നത് തുടരുക. ഇത് പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന യഥാർത്ഥ മൂല്യങ്ങൾ നിർവ്വചിക്കുക.

ഒരു സാമ്പിൾ അലേർട്ട് ഇമെയിൽ കാണിക്കുന്ന ഒരു സ്ക്രീൻഷോട്ട് ചുവടെയുണ്ട്.

അത്രയേയുള്ളൂ! ഈ ലേഖനത്തിൽ, സെർവർ മെമ്മറി (റാം) കുറവാണെങ്കിൽ, സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് അലേർട്ട് ഇമെയിലുകൾ അയയ്ക്കാൻ ഷെൽ സ്ക്രിപ്റ്റ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചു. ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി നിങ്ങൾക്ക് ഈ വിഷയവുമായി ബന്ധപ്പെട്ട ഏത് ചിന്തകളും ഞങ്ങളുമായി പങ്കിടാം.