dec 09

Diszk foglaltság számoló

Sziasztok!

Előfordulhat olyan eset, hogy a gépen valamilyen ok miatt nincs monitorozó rendszer, de azért valamilyen formában mégis szeretnétek a gép aktuális állapotáról képet kapni.

Első körben erre írtam egy kis bash scriptet, ami a csatolt particiókról küld egy megfelelő limit felett emailt. a megadott helyre. Pl. a disk foglaltság a / partición 80% fölött van.

Ezt berakva mondjuk 4 óránkénti futással cronttabba csökkenti annak az esélyét h teleíródik a dikszetek és nem veszitek észre.

Ime a script:

#!/bin/bash

##
#
# disk.sh
#
##
#df -h|grep /|awk ‘{print $6″ : “$5}’
#df -h|grep /| wc -l

SOROK=`df -h|grep /| wc -l`
LISTA=$(df -h|grep /| awk ‘{ print $5 “:” $6 }’)
LIMIT=80 # %-ban megadott ertek

# Email Subject ?
SUBJECT=”ide jön az email fejlece”

# Email To ?
EMAIL=”email cimed”

# Email text/message
EMAILMESSAGE+=”Hostname:\t”`cat /etc/hostname`”\n”
EMAILMESSAGE+=”Date:\t”`date`”\n\n”

echo “ROWS COUNT: “$SOROK

for ITEM in ${LISTA[*]}
do
ARR=(${ITEM//:/ })
ARR[0]=`echo ${ARR[0]} | sed “s/%$//”`
if [ ${ARR[0]} -gt $LIMIT ]
then
OVER=${ARR[0]}”%”
EMAILMESSAGE+=”The disk usage “$OVER
EMAILMESSAGE+=” on partition: “${ARR[1]}”!\n”
fi
done

if [ -n “$EMAILMESSAGE” ]
then
echo “Email sending…”
`echo -e $EMAILMESSAGE | mail -s $SUBJECT $EMAIL`
# `/bin/mail -s “$SUBJECT” “$EMAIL” < $EMAILMESSAGE`
fi

Amennyiben a megadott limit felett van a diszk foglaltság a következő kimenetet kapjuk:

ROWS COUNT: 3 (attól függ hány csatolt particiod van)
Email sending...

Crontab beállítás:

0 0,4,8,12,16,20 * * * root /operator/razorx/disk.sh >> /dev/null

Hát mára ennyit, remélem hasznos lesz másnak is a script.

Vélemény, hozzászólás?