Script Shell biex Tibgħat Twissija bl-Email Meta l-Memorja Tibaxxa


Aspett qawwi tal-programmi shell Unix/Linux bħal bash, huwa l-appoġġ aqwa tagħhom għal kostruzzjonijiet ta 'programmazzjoni komuni li jgħinuk tieħu deċiżjonijiet, tesegwixxi kmandi ripetutament, toħloq funzjonijiet ġodda, u ħafna aktar. Tista 'tikteb kmandi f'fajl magħruf bħala script shell u tesegwixxihom kollettivament.

Dan joffrilek mezz affidabbli u effettiv ta' amministrazzjoni tas-sistema. Tista' tikteb skripts biex tawtomatizza l-kompiti, pereżempju back-ups ta' kuljum, aġġornamenti tas-sistema eċċ; toħloq kmandi/utilitajiet/għodod ġodda tad-dwana u lil hinn. Tista 'tikteb skripts biex jgħinek tlaħħaq ma' dak li qed iseħħ fuq server.

Wieħed mill-komponenti kritiċi ta 'server huwa l-memorja (RAM), għandu impatt kbir fuq il-prestazzjoni ġenerali ta' sistema.

F'dan l-artikolu, se naqsmu script shell żgħir iżda utli biex nibagħtu email ta' twissija lil amministratur(i) tas-sistema wieħed jew aktar, jekk il-memorja tas-server tkun qed tonqos.

Din l-iskrittura hija partikolarment utli biex iżżomm għajnejk fuq Linux VPS (Servers Privati Virtwali) b'ammont żgħir ta 'memorja, ngħidu aħna ta' madwar 1GB (madwar 990MB).

  1. Server ta' produzzjoni CentOS/RHEL 7 b'utilità mailx installata b'server tal-posta postfix li jaħdem.

Dan huwa kif jaħdem l-iskrittura alertmemory.sh: l-ewwel jiċċekkja d-daqs tal-memorja ħielsa, imbagħad tiddetermina jekk l-ammont ta’ memorja ħielsa huwiex inqas jew ugwali għal daqs speċifikat (100 MB għall-iskop ta’ din il-gwida), użat bħala marka ta’ referenza għal l-inqas daqs aċċettabbli tal-memorja ħielsa.

Jekk din il-kundizzjoni hija vera, se tiġġenera lista tal-aqwa 10 proċessi li jikkunsmaw is-server RAM u tibgħat email ta 'twissija lil indirizzi elettroniċi speċifikati.

Nota: Int ser ikollok tagħmel ftit bidliet fl-iskrittura (speċjalment l-utilità tal-mittent tal-posta, uża l-bnadar xierqa) biex tissodisfa r-rekwiżiti tad-distribuzzjonijiet Linux tiegħek.

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

Wara li toħloq l-iskript tiegħek /etc/scripts/alertmemory.sh, għamilha eżekutibbli u symlink għal cron.hourly.

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

Dan ifisser li l-iskript ta 'hawn fuq se jitħaddem wara kull siegħa sakemm is-server ikun qed jaħdem.

Tip: Tista 'tittestja jekk tkunx qed taħdem kif maħsub, issettja l-valur tal-marka ta' riferiment ftit għoli biex tiskatta faċilment email li tintbagħat, u speċifika intervall żgħir ta 'madwar 5 minuti.

Imbagħad kompli iċċekkja mil-linja tal-kmand billi tuża l-kmand b'xejn ipprovdut fl-iskrittura. Ladarba tikkonferma li qed taħdem, iddefinixxi l-valuri attwali li tixtieq tuża.

Hawn taħt hawn screenshot li turi kampjun ta' email ta' twissija.

Dak kollox! F'dan l-artikolu, spjegajna kif tuża script shell biex tibgħat emails ta 'twissija lill-amministraturi tas-sistema f'każ li l-memorja tas-server (RAM) tkun qed taħdem baxxa. Tista' taqsam kwalunkwe ħsibijiet relatati ma' dan is-suġġett, magħna permezz tal-formola ta' feedback hawn taħt.