Usa ka Shell Script nga Magpadala sa Email Alert Sa diha nga ang Memorya Moubos


Usa ka kusgan nga aspeto sa mga programa sa shell sa Unix/Linux sama sa bash, mao ang ilang katingad-an nga suporta alang sa sagad nga mga pagtukod sa programming nga makapahimo kanimo sa paghimo og mga desisyon, pag-execute sa mga sugo nga balik-balik, paghimo og bag-ong mga gimbuhaton, ug daghan pa. Mahimo nimong isulat ang mga sugo sa usa ka file nga nailhan nga shell script ug ipatuman kini sa tingub.

Nagtanyag kini kanimo usa ka kasaligan ug epektibo nga paagi sa pagdumala sa sistema. Mahimo nimong isulat ang mga script aron ma-automate ang mga buluhaton, pananglitan adlaw-adlaw nga pag-back up, pag-update sa sistema ug uban pa; paghimo og bag-ong custom commands/utilities/tools ug uban pa. Makasulat ka og mga script aron matabangan ka nga mapadayon kung unsa ang nahitabo sa usa ka server.

Usa sa mga kritikal nga sangkap sa usa ka server mao ang memorya (RAM), kini dako nga epekto sa kinatibuk-ang pasundayag sa usa ka sistema.

Niini nga artikulo, magpaambit kami og gamay apan mapuslanon nga shell script aron magpadala og alert email ngadto sa usa o daghan pang (mga) administrador sa sistema, kon ang memorya sa server naghuot.

Kini mao ang script ilabi na nga mapuslanon sa pagbantay sa Linux VPS (Virtual Private Servers) uban sa gamay nga kantidad sa memorya, ingon sa mahitungod sa 1GB (gibana-bana nga 990MB).

  1. Usa ka CentOS/RHEL 7 production server nga adunay mailx utility nga gi-install nga nagtrabaho nga postfix mail server.

Ingon niini kung giunsa ang paglihok sa alertmemory.sh script: una nga gisusi niini ang libre nga gidak-on sa memorya, dayon gitino kung ang kantidad sa libre nga memorya gamay ra o parehas sa usa ka piho nga gidak-on (100 MB alang sa katuyoan niini nga giya), gigamit ingon usa ka marka sa bench para sa ang labing gamay nga madawat nga libre nga gidak-on sa memorya.

Kung tinuod kini nga kondisyon, makamugna kini usa ka lista sa mga nanguna nga 10 nga mga proseso nga nagkonsumo sa RAM sa server ug nagpadala usa ka alerto nga email sa piho nga mga adres sa email.

Pahinumdom: Kinahanglan ka nga maghimo ug pipila ka mga pagbag-o sa script (ilabi na ang mail sender utility, gamita ang angay nga mga bandila) aron matubag ang imong mga kinahanglanon sa pag-apod-apod sa Linux.

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

Human sa paghimo sa imong script /etc/scripts/alertmemory.sh, himoa kini nga executable ug symlink sa cron.hourly.

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

Kini nagpasabot nga ang script sa ibabaw ipadagan human sa matag 1 ka oras basta ang server nagdagan.

Sugyot: Mahimo nimong sulayan kung kini nagtrabaho sama sa gituyo, ibutang ang bili sa bench mark nga medyo taas aron dali nga ma-trigger ang usa ka email nga ipadala, ug itakda ang gamay nga agwat sa mga 5 minuto.

Dayon ipadayon ang pagsusi gikan sa command line gamit ang libre nga sugo nga gihatag sa script. Sa higayon nga imong makumpirma nga kini nagtrabaho, ipasabut ang aktuwal nga mga kantidad nga gusto nimong gamiton.

Sa ubos usa ka screenshot nga nagpakita sa usa ka sample alert email.

Kana lang! Niini nga artikulo, among gipasabut kung giunsa paggamit ang script sa shell aron magpadala mga alerto nga email sa mga administrador sa sistema kung ang memorya sa server (RAM) nahurot. Mahimo nimong ipaambit ang bisan unsang mga hunahuna nga may kalabutan sa kini nga hilisgutan, uban kanamo pinaagi sa porma sa feedback sa ubos.