Oryat peselende e-poçta duýduryşyny ibermek üçin gabyk skripti


Baş ýaly Unix/Linux gabyk programmalarynyň güýçli tarapy, karar bermäge, buýruklary gaýtalap ýerine ýetirmäge, täze funksiýalary döretmäge we başga-da köp mümkinçilik berýän umumy programmirleme gurluşlaryna ajaýyp goldawdyr. Buýruklary gabyk skripti diýlip atlandyrylýan faýlda ýazyp bilersiňiz we bilelikde ýerine ýetirip bilersiňiz.

Bu size ulgamy dolandyrmagyň ygtybarly we täsirli serişdesini hödürleýär. Işleri awtomatlaşdyrmak üçin skriptler ýazyp bilersiňiz, mysal üçin gündelik ätiýaçlyk nusgalary, ulgam täzelenmeleri we ş.m. täze ýörite buýruklar/kömekçi enjamlar/gurallar dörediň. Serwerde bolup geçýän zatlary yzarlamaga kömek etmek üçin skriptler ýazyp bilersiňiz.

Serweriň möhüm böleklerinden biri ýat (RAM) bolup, ulgamyň umumy işleýşine uly täsir edýär.

Bu makalada, serweriň ýady pes bolsa, bir ýa-da birnäçe ulgam dolandyryjysyna duýduryş e-poçta ibermek üçin kiçijik, ýöne peýdaly gabyk skriptini paýlaşarys.

Bu skript, takmynan 1 Gb (takmynan 990MB) hakda az mukdarda ýatda saklaýan Linux VPS (Wirtual Private Servers) -e gözegçilik etmek üçin aýratyn peýdalydyr.

  1. Işleýän postfiks poçta serweri bilen gurlan mailx kömekçi enjamy bolan CentOS/RHEL 7 önümçilik serweri.

“Alertmemory.sh” skriptiniň işleýşi şeýle: ilki bilen erkin ýadyň ululygyny barlaýar, soň bolsa skameyka belgisi hökmünde ulanylýan erkin ýadyň mukdarynyň azdygyny ýa-da belli bir ululyga deňdigini kesgitleýär (bu gollanma maksady bilen 100 MB). iň az kabul ederlikli ýadyň ululygy.

Bu şert dogry bolsa, serwer RAM-y sarp edýän iň gowy 10 prosesiň sanawyny döreder we görkezilen e-poçta salgylaryna duýduryş e-poçta iberer.

Bellik: Linux paýlaýyş talaplaryňyzy kanagatlandyrmak üçin skriptde (esasanam poçta iberijiniň peýdasy, degişli baýdaklary ulanyň) birnäçe üýtgeşme girizmeli bolarsyňyz.

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

/ Etc/scripts/alertmemory.sh skriptiňizi döredeniňizden soň, ony ýerine ýetirip we cron.hourly bilen baglanyşdyryň.

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

Bu, ýokardaky skriptiň serwer işleýänçä her 1 sagatdan soň işlejekdigini aňladýar.

Maslahat: Göz öňünde tutulan ýaly işleýändigini ýa-da işlemeýändigini barlap bilersiňiz, iberiljek e-poçta aňsatlyk bilen itergi bermek üçin skameykanyň bahasyny birneme ýokary goýuň we takmynan 5 minut aralygy kesgitläp bilersiňiz.

Soňra skriptde berlen mugt buýrugy ulanyp, buýruk setirinden barlamagy dowam etdiriň. Işleýändigini tassyklanyňyzdan soň, ulanmak isleýän hakyky bahalaryňyzy kesgitläň.

Aşakda duýduryş e-poçta nusgasyny görkezýän skrinshot.

Bu hemmesi! Bu makalada, serweriň ýady (RAM) pes işleýän ýagdaýynda ulgam dolandyryjylaryna duýduryş e-poçta ibermek üçin gabyk skriptini nädip ulanmalydygyny düşündirdik. Bu mowzuk bilen baglanyşykly islendik pikirleri aşakdaky seslenme formasy arkaly biziň bilen paýlaşyp bilersiňiz.