Contents

Script bash para monitorizar el espacio en GNU/Linux

Un buen uso para el envío de correos desde la línea de comandos que vimos en la anterior entrada es usarlo junto a herramientas de monitorización del sistema. Juntar la utilización de una de estas herramientas con el envío de correo va a permitirnos estar todo lo informados que deseemos (y seamos capaces de estar) acerca del estado de nuestros sistemas.

Script para la supervisión del espacio en disco de los sistemas de ficheros locales

La naturaleza abierta de GNU/Linux hace que existan cientos de aplicaciones, todas ellas muy válidas, encargadas de tareas relacionadas con la supervisión del sistema. No obstante, no hay nada como escribir un poco de código, aunque sea tan sencillo como este, y que funcione. Aquí os dejo un pequeño script con el que monitorizar el espacio de los sistemas de ficheros locales que deseemos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

####### Configuración del script #######

# Sistemas de ficheros a chequear
devices[0]=/dev/sda1
devices[1]=/dev/sdb1
devices[2]=/dev/sdd1
#devices[3]=
#devices[4]=
#....

# Destinatario del correo
destinatario="micorreo@dominio.com"

####### Cuerpo del script ########

# Recorremos el array de dispositivos a monitorizar
for device in ${devices[@]};
do
   # Consultamos la ocupación del dispositivo
   ocupacion=$(df -H | grep $device | expand | tr -s " " | cut -d " " -f5 | cut -d "%" -f1)
   # Si la ocupación es igual o mayor al 85%...
   if [ $ocupacion -ge 85 ];
   then
      # Preparación y envío del correo
      correo=$(echo "WARNING, " $device en `hostname` al $ocupacion"% de ocupación!!")
      asunto=$(echo "Alerta de espacio en " `hostname` " - " $device)
      echo $correo | mail -s "$asunto" $destinatario
   fi
done

Al principio del script hay una pequeña área de configuración donde asignar las particiones a monitorizar, así como configurar el email al que enviaremos las alertas. Por supuesto, sois totalmente libres de modificar y adaptar este pequeño script a vuestro gusto. Yo lo tengo planificado en el cron de mi servidor doméstico para que se ejecute cada noche a diario, y así evitar que mi servidor de ficheros se quede sin espacio.