Muy buenas!!

Os dejo un par de scripts para monitorizar el espacio en disco.

Hay dos versiones, una para chequear un solo filesystem y otro, para chequear el espacio de todos los filesystems de nuestra máquina.

Sistema Operativo en el que se han probado los scripts –> CentOS / RHEL 7.7

Paquetes que seguramente necesitaréis instalar –> mailx ( yum -y install mailx)

Os dejo también un enlace al proyecto en mi perfil de GitHub:

https://github.com/miguelcarretas/check-filesystems-space


Check de un solo filesystem (space.sh):

#!/bin/bash

# Sistemas de ficheros a chequear
device=/mnt/dir1/subdir1

# Destinatario del correo
destinatario="destinatario@example.com"

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

# 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 mayor al 85%…
if [ $ocupacion -ge 85 ];
then
        # Preparación y envío del correo
        df -h > storage.txt
        asunto=$(echo "Alerta de espacio en " `hostname` " – " $device)
        mailx -S from="emisor@example.com" -s "$asunto" $destinatario < storage.txt
fi

# 5 * * * * root sh /root/scripts/space.sh >/dev/null 2>&1

Check para todos los filesystems del sistema (space_v2.sh):

#!/bin/bash

# Destinatario del correo
destinatario="destinatario@example.com"

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

df -h | awk '{print $6}' | egrep -v "Montado" > /tmp/filesystems.list

while read line
do

# Consultamos la ocupación del dispositivo

ocupacion=`df -h | grep $line$ | awk '{print $5}' | cut -d"%" -f1`


# Si la ocupación es mayor a un valor en %…
if [ $ocupacion -ge 80 ];
then
        # Preparación y envío del correo
        df -h | grep $line$ > storage.txt
        asunto=$(echo "Alerta de espacio en " `hostname` " – " $line)
        mailx -S from="emisor@example.com" -s "$asunto" $destinatario < storage.txt
fi

done < /tmp/filesystems.list

# 5 * * * * root sh /root/scripts/space_v2.sh >/dev/null 2>&1

Es importante que si queréis automatizar el chequeo, creéis una tarea programada bajo /etc/cron.d/ y reiniciéis el servicio de crond (systemctl restart crond) .

En los scripts, en la última línea comentada, tenéis un ejemplo.

Espero que os sea de utilidad.

Un saludo Sysadmins! 🙂

About: Miguel Carretas Perulero

Miguel Carretas Perulero ha escrito 74 artículos en este blog.


0 commentarios

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies
A %d blogueros les gusta esto: