
Script bash para generar alarmas según la ocupación del disco
25/05/2009En caso de necesitar monitorear discos recibiendo un correo electrónico si se alcanza un porcentaje de ocupación determinado, un workaround rápido puede ser este pequeño script, personalizándolo con los valores propios:
#!/bin/bash
#It is neccesary to install "sendEmail", not "sendmail"
MONITOR1=80 #First alarm (%)
MONITOR2=90 #Second alarm (%)
DISCO=`df -h | grep /dev/sda2 | cut -c 41-42` #Change /dev/sda2, use the disk you want to monitor.
GB=`df -h | grep /dev/sda2 | cut -c 35-38`
#If your smtp server needs authentication, add parameters "-xu USERNAME" and "-xp PASSWORD"
if [ $DISCO -ge $MONITOR2 ]
then
echo "Espacio critico en disco, superado $MONITOR2"
sendEmail -l /var/log/syslog -f direccionRemite@gmail.com -t direccionDestino@gmail.com -u "Espacio CRITICO en Shirley - /dev/sda1" -m "El disco de Shirley está al $DISCO%. Espacio libre de $GB" -s miServidorSMTP.com
logger "80% alcanzado"
else
if [ $DISCO -gt $MONITOR1 ]
then
echo "Espacio critico en disco, superado $MONITOR1"
sendEmail -l /var/log/syslog -f direccionRemite@gmail.com -t direccionDestino@gmail.com -u "Espacio CRÍTICO en Shirley - /dev/sda1" -m "El disco de Shirley está al $DISCO%. Espacio libre de $GB" -s miServidorSMTP.com
logger "____________90% alcanzado"____________
else
echo "Disco OK"
fi
fi
Una vez creado el script, es necesario darle permiso de ejecución:
chmod 700 /root/alarma.ocupacion.sda2.sh
E incluirlo en el cron con la periodicidad deseada:
root@shirley:~# crontab -e
# m h dom mon dow command
* 19 * * * /root/alarma.ocupacion.sda1.sh
* 22 * * * /root/alarma.ocupacion.sda1.sh
* 9 * * * /root/alarma.ocupacion.sda1.sh