Ederede Shell iji zipu ọkwa email mgbe ebe nchekwa dị ala


Akụkụ siri ike nke mmemme Unix/Linux shei dị ka bash, bụ nkwado ha dị ịtụnanya maka nrụpụta mmemme na-enye gị ohere ịme mkpebi, mebie iwu ugboro ugboro, mepụta ọrụ ọhụrụ na ọtụtụ ndị ọzọ. Ị nwere ike dee iwu n'ime faịlụ a maara dị ka script shei wee gbuo ha ọnụ.

Nke a na-enye gị ụzọ a pụrụ ịdabere na ya na nke dị irè nke usoro nchịkwa. Ị nwere ike ide edemede iji megharịa ọrụ, dịka ọmụmaatụ ndabere kwa ụbọchị, mmelite sistemụ wdg; mepụta iwu omenala/akụrụngwa/ngwaọrụ ọhụrụ na gafere. Ị nwere ike ide edemede iji nyere gị aka ịnọgide na-enwe ihe na-emepe na sava.

Otu n'ime ihe dị mkpa nke ihe nkesa bụ ebe nchekwa (RAM), ọ na-emetụta oke arụmọrụ nke sistemụ.

N'ime edemede a, anyị ga-ekekọrịta obere edemede shea bara uru iji zipu ozi-e njikere na otu onye nchịkwa sistemụ ma ọ bụ karịa, ma ọ bụrụ na ebe nchekwa ihe nkesa na-agba ọsọ.

Nke a bụ script bara uru karịsịa maka ilekwasị anya na Linux VPS (Virtual Private Servers) na obere ebe nchekwa, kwuo banyere 1GB (ihe dị ka 990MB).

  1. Ihe nkesa mmepụta CentOS/RHEL 7 nwere ngwa mailx arụnyere na ihe nkesa ozi postfix na-arụ ọrụ.

Nke a bụ otú edemede alertmemory.sh si arụ ọrụ: nke mbụ ọ na-enyocha nha ebe nchekwa efu, wee chọpụta ma ọnụọgụ ebe nchekwa efu dị obere ma ọ bụ hà nhata nke akọwapụtara (100 MB maka ebumnuche nke ntuziaka a), jiri dị ka akara bench maka. nha ebe nchekwa efu kacha nta anabata.

Ọ bụrụ na ọnọdụ a bụ eziokwu, ọ ga-ewepụta ndepụta nke usoro 10 kachasị na-eri RAM nkesa wee ziga ozi njikere na adreesị ozi-e akọwapụtara.

Cheta na: Ị ga-eme mgbanwe ole na ole na edemede (karịsịa onye na-ezigara ozi, jiri ọkọlọtọ kwesịrị ekwesị) iji mezuo ihe nkesa Linux gị chọrọ.

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

Mgbe ịmepụtara script gị /etc/scripts/alertmemory.sh, mee ka ọ bụrụ nke a na-arụ ọrụ na symlink na cron.hourly.

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

Nke a pụtara na ederede dị n'elu ga-agba ọsọ mgbe awa 1 ọ bụla gachara ka ihe nkesa na-agba ọsọ.

NDỤMỌDỤ: Ị nwere ike nwalee ma ọ na-arụ ọrụ dị ka e zubere, tọọ uru akara bench ntakịrị elu ka ọ dị mfe ịkpalite ozi-e a ga-eziga, ma kọwaa obere oge nke ihe dịka nkeji ise.

Mgbe ahụ gaa n'ihu na-elele site na ahịrị iwu site na iji iwu efu enyere na edemede ahụ. Ozugbo ị kwadoro na ọ na-arụ ọrụ, kọwaa ụkpụrụ ndị ị ga-achọ iji.

N'okpuru ebe a bụ nseta ihuenyo na-egosi ozi-e njikere nlele.

Ọ gwụla! N'edemede a, anyị kọwara otu esi eji edemede shei ziga ozi-e njikere na ndị na-ahụ maka sistemụ ma ọ bụrụ na ebe nchekwa ihe nkesa (RAM) na-agba ọsọ. Ị nwere ike ịkọrọ anyị echiche ọ bụla gbasara isiokwu a, site na mpempe nzaghachi n'okpuru.