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 или друга алтернатива.
Последни коментари