Script de Shell para monitorear el uso del espacio en disco
Es una tarea muy importante monitorear el uso del espacio en disco en cualquier sistema. Si no se monitorea adecuadamente, puede terminar con un rendimiento deficiente o un bloqueo de la aplicación.
En este tutorial, le mostraré un script de shell simple que verifica el espacio usado en todos los dispositivos montados y advierte si el espacio usado es más que un umbral.
Espacio en disco de Shell Script Monitor
A continuación, el script de shell muestra el porcentaje de espacio en disco utilizado.
#!/bin/bash threshold="20" i=2 result=`df -kh |grep -v "Filesystem" | awk '{ print $5 }' | sed 's/%//g'` for percent in $result; do if ((percent > threshold)) then partition=`df -kh | head -$i | tail -1| awk '{print $1}'` echo "$partition at $(hostname -f) is ${percent}% full" fi let i=$i+1 done
Resultado de la secuencia de comandos
bobbin@linoxide:/$ df -kh Filesystem Size Used Avail Use% Mounted on /dev/sda1 52G 4.7G 45G 10% / tmpfs 1.9G 0 1.9G 0% /lib/init/rw udev 1.9G 192K 1.9G 1% /dev tmpfs 1.9G 2.6M 1.9G 1% /dev/shm /dev/sda6 92G 22G 66G 25% /home
bobbin@linoxide:/$ ./df_script.sh /dev/sda6 at linoxide.lviv.example.com is 25% full
Cómo funciona este script de shell
#Este valor de umbral establecido
umbral = ”20 ″
#Counter, se usará más tarde, establecido en 2, ya que la primera línea en la salida df es description.
i = 2
# Obteniendo la lista de porcentaje de todos los discos, df -kh muestra todo el uso del disco, grep -v – sin línea descriptiva, awk ‘{print $ 5}’ – solo necesitamos el quinto valor de la línea y sed ‘s /% // g’ – para eliminar% del resultado.
resultado = `df -kh | grep -v“ Sistema de archivos ”| awk ‘{imprimir $ 5}’ | sed ‘s /% // g’`
#Para cada valor en el resultado, iniciamos el ciclo.
por porcentaje en $ resultado; hacer
#compare, si el valor actual es mayor que el umbral, en caso afirmativo, las siguientes líneas.
si ((porcentaje> umbral))
entonces
# tomando el nombre de la partición, aquí usamos contador. Df lista de todas las particiones, head – toma solo $ i líneas desde la parte superior, tail -1 toma solo la última línea, awk ‘{print $ 1}’ – toma solo el primer valor de la línea.
partición = `df -kh | cabeza – $ i | cola -1 | awk ‘{imprimir $ 1}’ `
#print to console: qué partición y cuánto se usó en%.
echo «$ partición en $ (nombre de host -f) está $ {percent}% llena»
# fin del bucle if
fi
#contador aumentado en 1.
sea i = $ i + 1
# fin del bucle for.
hecho