Servera pieskatīšanas skripts
Ja var ticēt Mērfija likumiem, tad problēmas vienmēr uzrodas brīdī, kad esi ļoti aizņemts. Šis BASH skripts palīdzēs pieskatīt servera noslodzi un brīvo diska vietu, kas dos iespēju novērst problēmas laicīgi. Lai skripts strādātu korekti, uz servera nepieciešams korekti konfigurēts SMTP serveris un GNU Mailutils.
Skripta regulāru palaišanu nodrošinās Cron. Ar komandu "crontab -e" atveram cron pievienojam ierakstu
*/2 * * * * /vieta-kur-stav/skripts.sh >/dev/null 2>&1
Lai skripts tiktu izsaukts reizi divās minūtēs. Ar komandu "chmod +x skripts.sh" iedodam šim skriptam execute tiesības. Norādam epastu, uz kuru sūtīt brīdinājumus, izmainot MAIL rindiņu. PROCENTI="80" norādā, ka paziņojumi par aizņemto diska vietu tiks sūtīti, kad kādā no partīcijām būs aizņemti 80% diska vietas, savukārt rinda LOADAVG="1" norāda, ka paziņojumi par servera noslodzi tiks sūtīti, ja vidējā noslodze pārsniegs 1. Ja serverim ir vairāki procesori vai kodoli, tad LOADAVG būtu uz kodolu/procesoru skaitu. Piemēram, ja ir viens 4 kodolu procesors, tad LOADAVG jamaina uz 4.
#!/bin/bash
MAIL="admin@domain.tld"
PROCENTI="80"
LOADAVG="1"
LOAD=$(cat /proc/loadavg | cut -d " " -f1 | cut -d "." -f1)
df -P | grep -vE '^Filesystem|none|udev|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
PERC=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
PARTITION=$(echo $output | awk '{ print $2 }' )
if [ $PERC -ge $PROCENTI ]; then
TEMPFILE=$(mktemp)
df -hP > $TEMPFILE
mail -s "Running out of space \"$PARTITION ($PERC%)\" on $(hostname) $(date)" $MAIL < $TEMPFILE
rm -rf $TEMPFILE
fi
done
if [ $LOAD -ge $LOADAVG ]; then
TEMPFILE=$(mktemp)
TOP=$(top -b -n1)
NETSTAT=$(netstat -anutp)
PS=$(ps auxfww)
WHO=$(w)
echo -e "$TOP\n\n\n\n$PS\n\n\n\n$NETSTAT\n\n\n\n$WHO" > $TEMPFILE
mail -s "Load average $LOAD on $(hostname) $(date)" $MAIL < $TEMPFILE
rm -rf $TEMPFILE
fi