shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [shell-script] Flag email


From: Maik Alberto
Subject: RE: [shell-script] Flag email
Date: Fri, 1 Feb 2019 18:29:49 +0000

Foi apenas uma ideia de como fazer o flag, porém ao detalher possíveis problemas, segue alterações para tentar solucionar:

#add loop contador de particoes(inserida manualmente para exemplos);
#add FLAGS para cada particao;
##o proprio script reseta a flag no ultimo else;

#!/bin/bash
PART[0]=80
PART[1]=90
PART[2]=85
WARNING=85
FLAG[0]=/tmp/part0.log
FLAG[1]=/tmp/part1.log
FLAG[2]=/tmp/part2.log

for ((i=0;i<${#PART[@]};i++)); do
 if [ ${PART[$i]} -ge $WARNING ]; then
  if [ $(cat $FLAG[$i]) -eq 1 ]; then
    echo "PARTICAO-$i acima ou igual de 85% - nao envia e-mail"
   else
    echo "PARTICAO-$i acima ou igual de 85% - envia e-mail"
    echo 1 > $FLAG[$i]
  fi
 else
  echo "PARTICAO-$i abaixo de 85%"
  echo 0 > $FLAG[$i]
 fi
done



De: address@hidden <address@hidden> em nome de 'Julio C. Neves' address@hidden [shell-script] <address@hidden>
Enviado: sexta-feira, 1 de fevereiro de 2019 14:43
Para: address@hidden
Assunto: Re: [shell-script] Flag email
 
 

Fala Tiago,
acho que a solução que vc precisa deve ser um pouco mais complexa e segura que a do Maik. Deixa te mostrar 2 coisas:
  1. Se vc ganhar o alarme de um file system cheio, acho que não basta vc "flegar" (UGHHH!) que já deu a msg. A sua flag deve se referir especificamente sobre qual FS foi dada a msg. Suponha que tenha enchido o FS1 e teu script deu a msg e ligou a flag, porém antes de vc esvaziar o FS1, o teu FS2 tb lotou e vc nào terá nenhuma msg e, o que é pior, vc vai limpar o FS1, resetar a flag e não receberá a msg sobre o FS2.
  2. Se vc abrir espaço em um FS e esquecer de resetar a flag, vc nunca mais receberá msg nenhuma
Em virtude desses dois itens, minha proposta é:
  • Que as flags recebam nomes de acordo com o FS;
  • Fazer um bacalho que esvazie um FS e remova a flag a ale associada.
  • Mesmo parando de mandar e-mail, proponho que vc continue mandando aviso a cada intervalo de tempo via notify-send.
Para implementar isso, vc terá de melhorar esse prg e fazer um outro para esvaziar o file system e matar o arquivo-flag.

Se vc não conhece o notify-send, copie e cole a linha abaixo:

$ notify-send -i gtk-dialog-warning "Aviso importante" "O file system FS1 vai explodir" 

OBS: estou com Debian e Gnome. No Mint e no Ubuntu ambos com Gnome, isso tb funciona por padrão.

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» Conheça nosso portal educacional e estude conosco: 



Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.



Em sex, 1 de fev de 2019 às 13:54, Tiago Schievenin address@hidden [shell-script] <address@hidden> escreveu:
 

Olá,

Primeiramente obrigado, é exatamente esta a ideia muito obrigado.

att,
Tiago

Em sex, 1 de fev de 2019 às 11:54, Maik Alberto address@hidden [shell-script] <address@hidden> escreveu:
 

Bom dia!

Vê se a ideia seria essa:

#!/bin/bash
USAGE=85
FLAG=/tmp/mail.log
if [ $USAGE -ge 85 ]; then
  if [ $(cat $FLAG) -eq 1 ]; then
   echo "Acima ou igual  85"
   echo "nao envia e-mail"
   else
   echo "Acima ou igual  85"
   echo "envia e-mail"
   echo 1 > $FLAG
  fi
 else
 echo "Abaixo 85"
 echo 0 > $FLAG
fi


De: address@hidden <address@hidden> em nome de Tiago Schievenin address@hidden [shell-script] <address@hidden>
Enviado: sexta-feira, 1 de fevereiro de 2019 11:14
Para: address@hidden
Assunto: [shell-script] Flag email
 
 

Bom dia Pessoal,

Desenvolvi um script que roda no CRON a cada 10 minutos.
O script lista as partições e caso haja partições com 85% utilizadas ele envia e-mail informando.
Porém gostaria de criar uma "flag" para que quando identificado o problema não seja enviado o e-mail a cada 10 minutos.

$DF -HP | awk '{ print $5 " " $6 " " $1 }' | while read output;
do
 echo $output
  USAGE=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  PARTITION=$(echo $output | awk '{ print $2 }' )
           if [ $USAGE -ge 85 ]; then
                echo -e "Particao \"$PARTITION\" com uso de ($USAGE%)\" no servidor $HOSTNAME na data: $(date)\n Favor verificar
                 \n E-mail gerado pelo script /home/agoncti/disk_usage....sh"  | \
                 mail -s "[ALERTA]: Particao quase sem espaco $USAGE%" -r $SENDER $MAILBOX
            fi
  fi
done

Obrigado.

att,
Tiago

Agradeço a ajuda!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]