#!/bin/bash
# Criado por Luan Dotto com base no script do Elgio do fórum viva o Linux
# Configuracoes
TEMPO="600" [COLOR=#000000]# Quanto tempo parado? 20m = 1200 seg[/COLOR]
#Diretorios que iremos monitorar, os [0-9] utilizei para pegar todos os sub-diretorios que #são compostos por numero, mas pode ser informado apenas /var/log
DIR="/mnt/sul/[0-9][0-9][1-9][0-9]/ocp/in /mnt/mg/[0-9][0-9][1-9][0-9]/ocp/in /mnt/sp/[0-9][0-9][1-9][0-9]/ocp/in /mnt/co/[0-9][0-9][1-9][0-9]/ocp/in"
#Tempo que será utilizado no sleep, para o script rodar novamente (para fazer o loop)
ESPERA="300"
#Onde o log será gravado
ESCREVE="/etc/log.txt"
function acao ()
{
MIN=$(( $2 / 60 % 60))
HOR=$(( $2 / 60 / 60))
SEG=$(( $2 - ($HOR * 60 * 60 + $MIN * 60) ))
echo -e "Arquivo $1 esta parado a ${HOR}h${MIN}m${SEG}s" >> $ESCREVE
}
# Funcao principal
echo -e "Programa inicio em `date` nos diretorios ..integ/ocp/in" >> $ESCREVE
while true
do
AGORA="`date "+%s"`"
for d in $DIR
do
echo -e $d
if [ `ls $DIR|grep -ci xml$` -ne 0 ];
then
for a in $d
do
echo -e $a
ESTADO="`stat -c "%X" $a|grep -ci xml$`"
PASSOU="$(( $AGORA - $ESTADO ))"
if [ $PASSOU -gt $TEMPO ]
then
acao $a $PASSOU
fi
done
#done
echo -e "Existe calculos de OCP pendentes a mais de 10min, verifique log anexo \n O arquivo PromaxAll.pid foi excluido, acesse a rotina 03.02.36.08 da unidade mostrada no log e acompanhe se nos proximos 15min as OCPs serão calculadas. \n Caso não possua usuario Promax, procure a equipe noturna, caso não tenha retorno ou equipe não esteja mais presente, acionar o plantão." | mutt -s "Existem calculos de OCPs pendentes" -a /etc/log.txt -- [EMAIL="[email protected]"][email protected][/EMAIL]
#Limpar o arquivo de log
cat /dev/null > $ESCREVE
else
echo -e "Nenhum Calculo de OCP parado parado no diretorio" >> $ESCREVE
fi
done
sleep $ESPERA
done