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.