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).
- 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.