quinta-feira, 6 de junho de 2013

Script para verificar espaço em disco

Segue um script para alertar quando há problemas de espaço em disco no Zimbra, o mesmo também pode ser facilmente adaptado a outros tipos de servidores, coloque ele no cron do linux para executar diariamente e não ter surpresas com falta de espaço.


#!/bin/bash

#http://www.vivaolinux.com.br/perfil/verPerfil.php?login=juniordjv

ESPACO=`df -h | grep sdb1 | awk '{print $5}'  | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE=`df -hi | grep sdb1 | awk '{print $5}'  | grep -v IUse | sort -nr | awk -F % '{print $1}'`
ALERTA_RISCO="O disco esta prestes ficar sem espaco por favor verificar \n\n `df -h ` \n\n `uname -a`"
ALERTA_CHEIO="O disco esta cheio verifique com urgencia \n\n `df -h ` \n\n `uname -a`"
ALERTA_RISCO_INODE="O disco esta prestes ficar sem espaco favor verificar \n\n `df -hi ` \n\n \sbin\ifconfig \n\n `uname -a`"
ALERTA_CHEIO_INODE="O disco esta cheio verifique com urgencia \n\n `df -hi ` \n\n \sbin\ifconfig \n\n  `uname -a`"
SUBJECT_1="ZIMBRA - POUCO ESPACO EM DISCO"
SUBJECT_2="ZIMBRA - SEM ESPACO EM DISCO"
SUBJECT_1_I="ZIMBRA - POUCOS INODES NO DISCO"
SUBJECT_2_I="ZIMBRA - SEM INODES NO DISCO"
TAMANHO=`df -h`
UNIDADE=`df -h | grep sdb1`

# Verifica espaco em disco
case $ESPACO in
        7[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
        echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_1" "seu_email_sem aspas";;
        100) #Caso encha tb
        echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_2" "seu_email_sem aspas";;
esac

case $ESPACO_INODE in
        9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
        echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_1_I" "seu_email_sem aspas";;
        100) #Caso encha tb
        echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$$SUBJECT_2_I" "seu_email_sem aspas";;
esac