rev="post-659" No Comments
Важно е да следим, с колко свободно пространство разполагаме. Давам пример на едно роботче писано на bash, което изпраща e-mail (sms), когато свободното пространство на посочен дял от диска падне под определена граница:
#!/bin/bash
#------Configuration
#Send alert to this email address
EMAIL="35988xxxxxxx@sms.mtel.net"
#Partition which should be monitored
PARTITION="/dev/md1"
#If free space is less than this value in KB - send email
SPACELIMIT=1000000
#How long to wait in minutes to send another email
REMINDTIMEOUT=120
#Time format used in the message
TIME=`date +"%d.%m.%y %H:%M"`
#The marker prevents sending of too many messages
#Must be unique for each partition monitored.
#Add different numbers at the end of the file name for each partition
MARKER="/tmp/freespacereached"
#------END of Configuration
if [ -f $MARKER ]; then
MARKERAGE=$(($((`date +%s`-`stat -c %Z $MARKER`)) / 60))
else
MARKERAGE=0
fi
if [ $MARKERAGE -gt $REMINDTIMEOUT ]; then
rm -f $MARKER
fi
FREESPACE=`df | grep "$PARTITION" | awk '{ print $4}'`
# Prevent crash in case of wrong partition configuration or data extraction
FREESPACE=$((FREESPACE+0));
if [ $FREESPACE -lt $SPACELIMIT ]; then
MSG="$TIME - Spacecheck WARNING! - $((FREESPACE/1024))MB available on $PARTITION"
if [ ! -f "$MARKER" ]; then
echo $MSG | mail $EMAIL
touch $MARKER
fi
else
rm -f $MARKER
fi
Изпълнението на скрипта се предоставя на cron, като се създава конфигурационен ред, подобен на този:
0 9-21 * * * /scripts/spacecheck.sh
Т.е. прави проверка на всеки кръгъл час, но няма да ни безпокои през нощта 😉
Машината, на която се изпълнява трябва да може да изпраща електронна поща, т.е. трябва да има работещ sendmail, postfix или друга алтернатива.
Последни коментари