domenica 24 giugno 2007

Quanto sei pieno, filesystem? Un controllo per il riempimento via mail

Avendo bisogno di uno script che segnalasse il riempimento dei filesystems con un controllo abbastanza frequente ho realizzato il seguente script. In genere non amo prelevare dai vari rispettabili siti ( vedi BigAdmin ) scripts già fatti. Preferisco di gran lunga cercare di fare tutto da me per affinare la mia misera capacità nell'arte dello scripting e perchè poi so dove mettere le mani quando devo cambiare qualcosa, migliorare o aggiungere. In genere metto sempre un'anno di produzione ( i miei scripts me li porto dietro quando "migro" ) e un numero di versione per ricordarmi cosa ho di fronte sui vari servers dove utilizzo i miei accrocchi.

Il seguente ha queste caratteristiche
  • Segnala il riempimento da sopra il 90% di utilizzo, personalizzabile tramite variabile apposita
  • Manda una mail a ogni incremento o decremento di punto percentuale, non 5000. Quindi se si è ricevuta una mail che segnala un utilizzo del 92% tre ore fa, il 92% è l'utilizzo attuale
Gli svantaggi:
  • Al momento il riempimento del filesystem che contiene /var e di conseguenza lo spool di Sendmail significa l'impossibilità per il demone di inviare mails di segnalazione
  • Non è il massimo :), ma in rete ce ne sono sicuramente tanti altri

#!/usr/bin/bash
# 2007 Torchia Alessandro
# v0.6b

HOSTNAME=`hostname`
PC=90;
#FS=`df -F ufs -h|awk '{print$6}'|grep -v Moun`
df -F ufs -h|awk '{print$6}'|grep -v Moun|grep -n / > /tmp/fstable
PERCENT=`df -F ufs -h|awk '{print$5}'|grep %`
AA=0;
for i in $PERCENT
do
let AA+=1;
a=`cat /tmp/fstable|grep ^$AA`
a2=`echo $a|sed s/..:/''/|sed s/.:/''/`
#a3=`echo $a2|sed s/\//'_'/`
a3=`echo $a2|sed s/'\/'/'_'/`
PERCENTX=`echo $i|sed s/'%'/''/`;

if [ $PERCENTX -gt $PC ]; then
if [ ! `grep $PERCENTX /tmp/fswarn$a3` ];then
mailx -s "Filesystem $a2 sul server $HOSTNAME, è al $i" root <<> /tmp/fswarn$a3

fi
fi
done

Ah naturalmente va in crontab, tipo:
0,10,20,30,40,50 * * * * /bck/scripts/fullcontrol > /dev/null 2>&1

Se chi legge ha idee come migliorarne l'implementazione, beh, non chiedo di meglio, c'è sempre e molto da imparare

Nessun commento:

Visite