Skripta školjke za slanje upozorenja e-poštom kad se memorija isprazni


Moćan aspekt Unix/Linux shell programa kao što je bash njihova je nevjerojatna podrška uobičajenim programskim konstrukcijama koje vam omogućuju donošenje odluka, opetovano izvršavanje naredbi, stvaranje novih funkcija i još mnogo toga. Naredbe možete pisati u datoteku poznatu kao skripta ljuske i izvršavati ih kolektivno.

Ovo vam nudi pouzdano i učinkovito sredstvo za upravljanje sustavom. Možete pisati skripte za automatizaciju zadataka, na primjer dnevne sigurnosne kopije, ažuriranja sustava itd .; stvoriti nove prilagođene naredbe/uslužne programe/alate i više. Možete pisati skripte koje će vam pomoći da pratite što se odvija na poslužitelju.

Jedna od kritičnih komponenti poslužitelja je memorija (RAM), koja uvelike utječe na ukupne performanse sustava.

U ovom ćemo članku podijeliti malu, ali korisnu skriptu ljuske za slanje e-poruke upozorenja jednom ili više administratora sustava, ako memorije poslužitelja ponestaje.

Ova je skripta posebno korisna za praćenje Linux VPS-a (virtualnih privatnih poslužitelja) s malom količinom memorije, recimo od oko 1 GB (približno 990 MB).

  1. Proizvodni poslužitelj CentOS/RHEL 7 s uslužnim programom mailx instaliranim s radnim postfix poslužiteljem pošte.

Evo kako funkcionira skripta alertmemory.sh: prvo provjerava veličinu slobodne memorije, a zatim utvrđuje je li količina slobodne memorije manja ili jednaka navedenoj veličini (100 MB u svrhu ovog vodiča), koja se koristi kao referentna vrijednost za najmanje prihvatljiva veličina slobodne memorije.

Ako je ovaj uvjet istinit, generirat će popis top 10 procesa koji zauzimaju RAM poslužitelja i na upozorenja e-pošte šalje upozorenje na određene adrese e-pošte.

Napomena: Morat ćete unijeti nekoliko izmjena u skriptu (posebno uslužni program pošiljatelja pošte, upotrijebite odgovarajuće zastavice) kako biste zadovoljili svoje zahtjeve za Linux distribuciju.

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

Nakon izrade vaše skripte /etc/scripts/alertmemory.sh, učinite je izvršnom i simboličnom poveznicom na cron.hourly.

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

To znači da će se gornja skripta pokretati nakon svakih 1 sata sve dok poslužitelj radi.

Savjet: Možete testirati radi li kako je predviđeno, postaviti vrijednost referentne vrijednosti malo visoko da se lako pokreće slanje e-pošte i odrediti mali interval od oko 5 minuta.

Zatim nastavite provjeravati iz naredbenog retka koristeći besplatnu naredbu navedenu u skripti. Nakon što potvrdite da radi, definirajte stvarne vrijednosti koje biste željeli koristiti.

Ispod je snimka zaslona koja prikazuje uzorak e-pošte s upozorenjem.

To je sve! U ovom smo članku objasnili kako koristiti skriptu ljuske za slanje e-poruka upozorenja administratorima sustava u slučaju da ponestane memorije poslužitelja (RAM). Bilo koja razmišljanja u vezi s ovom temom možete podijeliti s nama putem obrasca za povratne informacije u nastavku.