Szerver üzemeltetésénél fontos a szerver működőképességének megőrzése. Két dolog van, ami sosem elég, egyik a tárhelykapacitás, a másik pedig a szabad memória. Ez utóbbinak megőrzésére mutatok be egy scriptet, ami hasznos lehet másnak is:
#!/bin/sh
KILL_LEVEL="40"
FILTER=".*"
SUBJECT="Killed process by memcheck"
ALERT_EMAILS="cimzett1@domain.tld cimzett2@domain.tld"
ps -A -o comm,pmem,pid,args | grep "$FILTER" | while read line
do
date=`date '+%Y-%m-%d %H:%M'`
if [ $(echo "$line" | awk '{printf int($2)}') -gt $KILL_LEVEL ]
then
kill -9 `echo $line | awk '{printf $3}'`
server=`cat /etc/hostname`
prog=`echo $line | awk '{$2="";$3="";print " "$0}'`
body="Killed:n server: $servern date: $daten cmd:$progn"
for i in $ALERT_EMAILS
do
echo -e "$body" | mail -a "From: felado@domain.tld" -s "$SUBJECT" "$i"
done
fi
done
Ha nem akarjuk automatizálni, csak elindítani parancssorban, akkor érdemes lehet egy while ciklus közé fogni:
root@bash# while true
do
...ide jöhet az előző script egy-az-egyben, majd az 5 másodperces pihenő
sleep 5
done
Persze célravezetőbb, ha beautomatizáljuk a script működését a cron segítésével.


