Iwe akọọlẹ Ikarahun kan lati Firanṣẹ Itaniji Imeeli Nigbati Iranti Ba Ni Kekere


Apa kan ti o lagbara ti awọn eto ikarahun Unix/Linux bii bash, jẹ atilẹyin iyalẹnu wọn fun awọn itumọ siseto ti o wọpọ eyiti o jẹ ki o ṣe awọn ipinnu, ṣiṣe awọn aṣẹ leralera, ṣẹda awọn iṣẹ tuntun, ati pupọ diẹ sii. O le kọ awọn aṣẹ ninu faili kan ti a mọ si iwe afọwọkọ ikarahun ki o ṣe wọn lapapọ.

Eyi nfun ọ ni awọn ọna igbẹkẹle ati ti o munadoko ti iṣakoso eto. O le kọ awọn iwe afọwọkọ lati ṣe adaṣe awọn iṣẹ ṣiṣe, fun apẹẹrẹ awọn igbesoke ojoojumọ, awọn imudojuiwọn eto ati bẹbẹ lọ; ṣẹda awọn ofin aṣa/ohun elo/irinṣẹ tuntun ati ju bẹẹ lọ. O le kọ awọn iwe afọwọkọ lati ṣe iranlọwọ fun ọ lati tọju pẹlu ohun ti n ṣafihan lori olupin kan.

Ọkan ninu awọn eroja pataki ti olupin kan jẹ iranti (Ramu), o ni ipa nla lori iṣẹ apapọ ti eto kan.

Ninu àpilẹkọ yii, a yoo pin iwe afọwọkọ ikarahun kekere ṣugbọn ti o wulo lati firanṣẹ imeeli itaniji si ọkan tabi diẹ sii olutọju eto (s), ti iranti olupin ko ba lọ silẹ.

Eyi jẹ iwe afọwọkọ jẹ iwulo pataki fun titọju oju lori Lainos VPS (Awọn olupin Aladani Foju) pẹlu iye iranti kekere, sọ nipa 1GB (o fẹrẹ to 990MB).

  1. Olupilẹṣẹ iṣelọpọ CentOS/RHEL 7 pẹlu iwulo mailx ti a fi sii pẹlu olupin ifiweranṣẹ ifiweranṣẹ ṣiṣẹ.

Eyi ni bii iwe afọwọkọ alertmemory.sh ṣe n ṣiṣẹ: akọkọ o ṣayẹwo iwọn iranti ọfẹ, lẹhinna pinnu boya iye ti iranti ọfẹ ba kere tabi dọgba si iwọn pàtó kan (100 MB fun idi itọsọna yii), ti a lo bi ami ibujoko fun iwọn iranti ọfẹ ọfẹ ti o kere ju.

Ti ipo yii ba jẹ otitọ, yoo ṣe agbekalẹ atokọ ti awọn ilana 10 ti o ga julọ ti o gba Ramu olupin ati firanṣẹ imeeli itaniji si awọn adirẹsi imeeli pàtó kan.

Akiyesi: Iwọ yoo ni lati ṣe awọn ayipada diẹ si iwe afọwọkọ (paapaa iwulo oluranṣẹ ifiweranse, lo awọn asia ti o yẹ) lati pade awọn ibeere pinpin Linux 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

Lẹhin ti o ṣẹda iwe afọwọkọ rẹ /etc/scripts/alertmemory.sh, jẹ ki o ṣiṣẹ ki o ṣe afiwe si cron.hourly.

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

Eyi tumọ si pe iwe afọwọkọ ti o wa loke yoo ṣiṣẹ lẹhin gbogbo wakati 1 niwọn igba ti olupin n ṣiṣẹ.

Imọran: O le ṣe idanwo ti o ba n ṣiṣẹ bi a ti pinnu rẹ, ṣeto iye ami ami ibujoko kekere diẹ lati ṣe irọrun imeeli lati ranṣẹ ni irọrun, ati pato aarin kekere ti o to iṣẹju 5.

Lẹhinna tẹsiwaju lori ṣayẹwo lati laini aṣẹ pẹlu pipaṣẹ ọfẹ ti a pese ninu iwe afọwọkọ naa. Lọgan ti o ba jẹrisi pe o n ṣiṣẹ, ṣalaye awọn iye gangan ti iwọ yoo fẹ lati lo.

Ni isalẹ jẹ sikirinifoto ti o nfihan imeeli itaniji apẹẹrẹ.

Gbogbo ẹ niyẹn! Ninu àpilẹkọ yii, a ṣalaye bi a ṣe le lo iwe afọwọkọ ikarahun lati firanṣẹ awọn apamọ itaniji si awọn alabojuto eto ti iranti olupin (RAM) ko ba lọ. O le pin eyikeyi awọn ero ti o jọmọ akọle yii, pẹlu wa nipasẹ fọọmu esi ni isalẹ.