Skeljaforskrift til að senda tölvupóstviðvörun þegar minni verður lítið


Öflugur þáttur í Unix/Linux skelforritum eins og bash, er ótrúlegur stuðningur þeirra við algengar forritunarsmíðar sem gera þér kleift að taka ákvarðanir, framkvæma skipanir ítrekað, búa til nýjar aðgerðir og svo margt fleira. Þú getur skrifað skipanir í skrá sem kallast skelforskrift og framkvæmt þær sameiginlega.

Þetta býður þér upp á áreiðanlega og áhrifaríka leið til kerfisstjórnunar. Þú getur skrifað forskriftir til að gera verkefni sjálfvirk, til dæmis daglegar öryggisafrit, kerfisuppfærslur o.s.frv.; búa til nýjar sérsniðnar skipanir/tól/tól og fleira. Þú getur skrifað forskriftir til að hjálpa þér að fylgjast með því sem er að gerast á netþjóni.

Einn af mikilvægum þáttum netþjóns er minni (RAM), það hefur mikil áhrif á heildarafköst kerfis.

Í þessari grein munum við deila litlu en gagnlegu skeljaforskrift til að senda viðvörunarpóst til eins eða fleiri kerfisstjóra, ef minni miðlara er að verða lítið.

Þetta handrit er sérstaklega gagnlegt til að fylgjast með Linux VPS (Virtual Private Servers) með lítið magn af minni, segjum um 1GB (u.þ.b. 990MB).

  1. CentOS/RHEL 7 framleiðsluþjónn með mailx tóli uppsett með virkum postfix póstþjóni.

Svona virkar alertmemory.sh forskriftin: fyrst athugar það stærð laust minnis, ákvarðar síðan hvort magn af lausu minni sé minna eða jafnt tilgreindri stærð (100 MB í þessum leiðbeiningum), notað sem viðmið fyrir minnsta viðunandi lausa minnisstærð.

Ef þetta ástand er satt mun það búa til lista yfir 10 bestu ferlana sem neyta vinnsluminni miðlara og sendir viðvörunarpóst á tilgreind netföng.

Athugið: Þú verður að gera nokkrar breytingar á handriti (sérstaklega póstsendandi tólinu, notaðu viðeigandi fána) til að uppfylla kröfur þínar um Linux dreifingu.

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

Eftir að hafa búið til handritið þitt /etc/scripts/alertmemory.sh skaltu gera það keyranlegt og tengja það við cron.hourly.

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

Þetta þýðir að ofangreint handrit verður keyrt eftir 1 klukkustundar fresti svo lengi sem þjónninn er í gangi.

Ábending: Þú getur prófað hvort það virkar eins og ætlað er, stillt viðmiðunargildið aðeins hátt til að hægt sé að senda tölvupóst á auðveldan hátt og tilgreina um það bil 5 mínútur.

Haltu síðan áfram að athuga frá skipanalínunni með því að nota ókeypis skipunina sem fylgir handritinu. Þegar þú hefur staðfest að það virki skaltu skilgreina raunveruleg gildi sem þú vilt nota.

Hér að neðan er skjáskot sem sýnir sýnishorn af viðvörunarpósti.

Það er allt og sumt! Í þessari grein útskýrðum við hvernig á að nota skeljaforskrift til að senda viðvörunarpóst til kerfisstjóra ef þjónaminni (RAM) er að verða lítið. Þú getur deilt öllum hugsunum sem tengjast þessu efni með okkur í gegnum athugasemdaformið hér að neðan.