E Shell Skript fir E-Mail Alarm ze schécken wann d'Erënnerung niddereg gëtt


E mächtegen Aspekt vun Unix/Linux Shell Programmer wéi Bash, ass hir erstaunlech Ënnerstëtzung fir allgemeng Programméierungskonstruktiounen, déi Iech erlaben Entscheedungen ze treffen, Kommandoen ëmmer erëm auszeféieren, nei Funktiounen ze kreéieren, a sou vill méi. Dir kënnt Befehle schreiwen an enger Datei bekannt als Shell-Skript a se kollektiv ausféieren.

Dëst bitt Iech en zouverlässeg an efficace Mëttel fir Systemverwaltung. Dir kënnt Scripte schreiwen fir Aufgaben ze automatiséieren, zum Beispill alldeegleche Backups, Systemupdates etc; erstellt nei personaliséiert Kommandoen/Utilities/Tools an doriwwer eraus. Dir kënnt Scripte schreiwen fir Iech ze hëllefen matzehalen wat op engem Server entfalt.

Ee vun de kritesche Komponente vun engem Server ass Erënnerung (RAM), et beaflosst vill op d'Gesamtleistung vun engem System.

An dësem Artikel wäerte mir e klengen awer nëtzlech Shell-Skript deelen fir eng Alarm-E-Mail un een oder méi Systemadministrateur(en) ze schécken, wann d'Server-Erënnerung niddereg ass.

Dëst Skript ass besonnesch nëtzlech fir en Aa op Linux VPS (Virtual Private Servers) mat enger klenger Quantitéit un Erënnerung ze halen, sot ongeféier 1GB (ongeféier 990MB).

  1. E CentOS/RHEL 7 Produktiounsserver mat Mailx Utility installéiert mat engem funktionnéierende Postfix Mail Server.

Dëst ass wéi den alertmemory.sh Skript funktionnéiert: als éischt kontrolléiert et déi gratis Erënnerungsgréisst, bestëmmt dann ob d'Quantitéit vum fräie Gedächtnis manner oder d'selwecht ass wéi eng spezifizéiert Gréisst (100 MB fir den Zweck vun dësem Guide), benotzt als Benchmark fir d'mannst akzeptabel fräi Erënnerung Gréisst.

Wann dës Bedingung stëmmt, generéiert et eng Lëscht vun den Top 10 Prozesser déi Server RAM verbrauchen a schéckt eng Alarm E-Mail op spezifizéiert E-Mailadressen.

Bemierkung: Dir musst e puer Ännerungen am Skript maachen (besonnesch d'Mail Sender Utility, benotzt déi entspriechend Fändelen) fir Är Linux Verdeelungsfuerderunge gerecht ze ginn.

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

Nodeems Dir Äre Skript /etc/scripts/alertmemory.sh erstallt hutt, maacht et ausführbar a symlink op cron.hourly.

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

Dëst bedeit datt de Skript uewen no all 1 Stonn esou laang wéi de Server leeft.

Tipp: Dir kënnt testen ob et funktionnéiert wéi virgesinn, de Benchmark Wäert e bëssen héich setzen fir einfach eng E-Mail auszeschléissen fir ze schécken, a spezifizéiert e klengen Intervall vu ronn 5 Minutten.

Fuert dann weider vun der Kommandozeil ze kontrolléieren mat dem gratis Kommando am Skript. Wann Dir bestätegt datt et funktionnéiert, definéiert déi tatsächlech Wäerter déi Dir benotze wëllt.

Drënner ass e Screenshot deen eng Probe Alarm E-Mail weist.

Dat ass alles! An dësem Artikel hu mir erkläert wéi Dir Shell-Skript benotzt fir Alarm-E-Mailen un Systemadministrateuren ze schécken am Fall vum Server Memory (RAM) leeft niddereg. Dir kënnt all Gedanken iwwer dëst Thema deelen, mat eis iwwer de Feedback Form hei drënner.