Shell-skript meilisõnumite saatmiseks, kui mälu hakkab tühjaks saama


Unixi/Linuxi shelliprogrammide, nagu bash, võimas aspekt on nende hämmastav tugi tavalistele programmeerimiskonstruktsioonidele, mis võimaldavad teil otsuseid teha, korduvalt käske täita, uusi funktsioone luua ja palju muud. Käsud saate kirjutada shelliskriptina tuntud faili ja neid ühiselt täita.

See pakub teile usaldusväärset ja tõhusat süsteemi haldamise viisi. Ülesannete automatiseerimiseks võite kirjutada skripte, näiteks igapäevaseid varukoopiaid, süsteemivärskendusi jne; luua uusi kohandatud käske/utiliite/tööriistu ja kaugemale. Saate kirjutada skripte, mis aitavad teil serveris toimuvaga kursis olla.

Serveri üks kriitilisi komponente on mälu (RAM), see mõjutab oluliselt süsteemi üldist jõudlust.

Selles serveris jagame väikest, kuid kasulikku shelliskripti, et saata hoiatusmeil ühele või mitmele süsteemiadministraatorile, kui serveri mälu on otsakorral.

See skript on eriti kasulik Linuxi VPS-il (virtuaalsed privaatserverid), millel on väike mälumaht, näiteks umbes 1 GB (umbes 990 MB), silma peal hoidmine.

  1. CentOS/RHEL 7 tootmisserver koos Mailxi utiliidiga, mis on installitud töötava postfix-meiliserveriga.

Skript alarmmemory.sh töötab nii: kõigepealt kontrollitakse vaba mälu suurust, seejärel tehakse kindlaks, kas vaba mälu maht on väiksem või võrdne määratud suurusega (100 MB käesoleva juhendi tähenduses), mida kasutatakse kõige vähem aktsepteeritav vaba mälumaht.

Kui see tingimus on tõene, genereerib see loendi 10 kõige olulisemast protsessorist, mis tarbivad serveri RAM-i, ja saadab hoiatusmeili määratud e-posti aadressidele.

Märkus. Linuxi distributsiooninõuete täitmiseks peate skriptis tegema mõned muudatused (eriti meilisaatja utiliidis, kasutage vastavaid lippe).

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

Pärast skripti /etc/scripts/alertmemory.sh loomist muutke see käivitatavaks ja viidake saidile cron.hourly.

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

See tähendab, et ülaltoodud skripti käitatakse iga 1 tunni järel, kui server töötab.

Näpunäide. Võite testida, kas see töötab ettenähtud viisil, seada võrdlusmargi väärtus veidi kõrgeks, et meil saadetaks hõlpsasti, ja määrake väike umbes 5-minutiline intervall.

Seejärel jätkake kontrollimist käsurealt, kasutades skriptis toodud tasuta käsku. Kui olete veendunud, et see töötab, määrake tegelikud väärtused, mida soovite kasutada.

Allpool on ekraanipilt, mis näitab hoiatusmeili näidist.

See on kõik! Selles artiklis selgitasime, kuidas kasutada shelliskripti hoiatusmeilide saatmiseks süsteemiadministraatoritele juhul, kui serverimälu (RAM) hakkab otsa saama. Selle teemaga seotud mõtteid saate meiega jagada allpool oleva tagasisidevormi kaudu.