Monitorizar espacio de disco duro

Monitorizar espacio de disco duro Linux

Comprobar y avisar de espacio en disco

Vamos a crear un script que monitorice el espacio en disco y llegado el momento nos envíe un correo electrónico avisándonos del espacio libre.

Cuando tenemos un servidor donde se generan muchos datos y no disponemos de paneles de control tipo cPanel o Plesk que nos avisen, es necesario crearnos nuestros propios sistemas de alarmas.

El siguiente script va a comprobar diariamente el espacio libre y cuando esté entre un 30% y un 20% nos enviará un correo electrónico avisando que el espacio libre del disco está por debajo de un 30%.

Cuando esté entre un 20% y un 10%, nos informará que el espacio está por debajo del 20%. Entre un 10% y un 5% nos informará que está por debajo del 10% y si está por debajo de un 5% pues, ¡ya puedes correr a borrar algo!.

El servicio de correo que se usa es msmtp , el cual ya he utilizado anteriormente y puedes ver su configuración en: Monitorización de webs.

#!/bin/bash

# Directorio que se va a monitorear
DIRECTORIO="/"

# Dirección de correo para enviar alertas
EMAIL="tu_correo@example.com"

# Función para enviar correo electrónico
send_email() {
  local umbral=$1
   echo -e "Asunto: Alerta de espacio en disco\n\nEl espacio libre en el disco ha caído por debajo del ${umbral}%." | msmtp $EMAIL
}

# Comprobar el espacio libre en disco
DISPONIBLE=$(df -h $DIRECTORIO | awk 'NR==2 {print $5}' | sed 's/%//')

# Enviar correos basados en los intervalos
if [ "$DISPONIBLE" -ge 70 ] && [ "$DISPONIBLE" -lt 80 ]; then
send_email 30
elif [ "$DISPONIBLE" -ge 80 ] && [ "$DISPONIBLE" -lt 90 ]; then
send_email 20
elif [ "$DISPONIBLE" -ge 90 ] && [ "$DISPONIBLE" -lt 95 ]; then
send_email 10
elif [ "$DISPONIBLE" -ge 95 ]; then
send_email 5
fi

Guardamos el script anterior en un archivo llamado check_disk_space.sh y le damos permisos de ejecución:

chmod +x check_disk_space.sh

Por último configuramos el cron para que se ejecute diariamente a medianoche, ejecutando crontab -e y añadiendo la siguiente línea:

0 0 * * * /ruta/a/tu/script/check_disk_space.sh

Explicación del Script

  • DIRECTORIO: Especifica el directorio del cual se va a monitorear el espacio libre.
  • EMAIL: La dirección de correo electrónico a la que se enviarán las alertas.
  • send_email(): Función que envía un correo utilizando msmtp.
  • DISPONIBLE: Calcula el porcentaje de espacio libre en el directorio especificado.
  • Condicionales: Envía un correo según el intervalo en el que se encuentre el porcentaje de espacio libre.

Facebook
X
LinkedIn
WhatsApp
Email

Sobre mi

Trabajo en el desarrollo de webs profesionales desde hace más de 25 años.
También me dedico a mis proyectos personales.

Últimas notas publicadas

Categorías

Scroll al inicio