• Aviso Legal
  • About

Bienvenidos al Blog de David Rodriguez

Script aviso de espacio de disco duro en linux

mayo 26, 2017 11:02 am / 1 Comment / David Rodriguez

He tenido que hacer un script que me avise cuando el disco duro del servidor esté casi lleno y  y borre unos archivos que se generan automaticamente.
El problema nos ha venido porque en Amazon AWS no hay alerta de espacio de disco duro, hay miles de alertas que puedes generarte, de memoria, cpu,etc yo creo que puedes incluso crearte una para cuando no te queda café en tu casa, pero curiosamente, no hay ninguna, o por lo menos no la he encontrado, que te avise cuando al disco duro se llena.
Para ello, me he basado en script shell para que me avise por email y borre unos archivos de un directorio cuando el espacio en disco es mayor que el 85%.

En el apartado devices, teneis que poner el disco o discos  que quereis controlar.
Os dejo aquí el script para que lo utiliceis y modifiqueis si es necesario:

#!/bin/bash

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

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

# Destinatario del correo
destinatario1=»[email protected]»
destinatario2=»[email protected]»
####### 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!! Se borra la cache.»)
asunto=$(echo «Alerta de espacio en » `hostname` » – » $device)
echo $correo | mail -s «$asunto» $destinatario1
echo $correo | mail -s «$asunto» $destinatario2

#Borrar ficheros automaticamente del directorio que quieras
rm -rf /var/www/tudominio.com/cache/*
fi
done

 

Me he basado en un script que he encontrado en esta página.

 

Una vez que al script le da permisos de ejecución

chmod 777 ./miscript.sh

Ya podemos probar y ejecutar el script y ver que funciona (podemos cambiar el 85% por cualquier otro valor para ver que funciona.)

Ahora solo nos queda meterlo en el crontab y ejecutarlo cada hora para que nos avise en caso de que el disco duro esté a punto de llenarse.

crontab -e

Añadimos esta linea al cron

50 */1 * * * /home/ec2-user/scripts/warning_hdd.sh</span>

De tal forma que cada hora, en el minuto 50, se ejecutará nuestro script y nos avisará por mail, ademas de borrarnos los archivos de la caché.

Posts relacionados

  • ¿me compro el lamborghini urus hibrido?
  • Profesores castigan a alumnos a traves de tuenti
  • Cosas interesantes david rodriguez twitter 2010-09-19
  • perros en adopcion en madrid
  • Buscamos programador de confianza en Activolution
Posted in: Programacion, servidores

One Thought on “Script aviso de espacio de disco duro en linux”

  1. Benja on diciembre 27, 2019 at 12:50 pm said:

    Hola, lo intento implementar al script y me da este error… que puede ser?
    cut: el delimitador debe ser un sólo carácter
    Pruebe ‘cut –help’ para más información.
    cut: el delimitador debe ser un sólo carácter
    Pruebe ‘cut –help’ para más información.
    ./hola.sh: línea 24: [: -ge: se esperaba un operador unario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Post Navigation

← Previous Post
Next Post →

Categorias

  • Base de datos
  • Empresas
  • Internet
  • Mac
  • marketing
  • Otros
  • Prensa
  • Programacion
  • Redes Sociales
  • Retos deportivos
  • Seguridad
  • SEO
  • servidores
  • SPAM
  • Uncategorized
© Copyright 2025 - Blog de David Rodriguez