Script para verificar arquivos parados em diretorio
Bom dia a todos!
Criei o script abaixo para monitorar se existem arquivos parados em um determinado diretório, ele faz o processo corretamente, no entanto se ele não encontra o arquivo especificado o script da erro e aborta, precisava que ele continuasse e acessasse os demais diretórios.
Alguém sabe o que fazer para que ele continue em caso de erro?
A mensagem retornada é essa:
impossível obter estado de '/mnt/ba/0046/ocp/in/*.XML': Arquivo ou diretório não encontrado
/etc/MonitoramentoOCP.sh: linha 42: 1487078249 - : erro de sintaxe: operando esperado (token com erro é "- ")
Código :
#!/bin/bash
# Luan Dotto
# Configuracoes
TEMPO="600"
DIR="/mnt/ba/"
ESPERA="30"
ESCREVE="/etc/log.txt"
function acao ()
{
MIN=$(( $2 / 60 % 60))
HOR=$(( $2 / 60 / 60))
SEG=$(( $2 - ($HOR * 60 * 60 + $MIN * 60) ))
echo "Arquivo $1 esta parado a ${HOR}h${MIN}m${SEG}s" >> $ESCREVE
}
# Funcao principal
echo "Programa inicio em `date` nos diretorios $DIR" >> $ESCREVE
while true
do
#cat /dev/null > $ESCREVE
AGORA="`date "+%s"`"
for d in /mnt/ba/[0-9][0-9][1-9][0-9]
do
#then
echo $d
for a in $d
do
echo $a
ESTADO="`stat -c "%X" $a/ocp/in/*.XML`"
PASSOU="$(( $AGORA - $ESTADO ))"
if [ $PASSOU -gt $TEMPO ]
then
acao $a $PASSOU
fi
done
#else
# echo Nenhum Arquivo parado
#fi
done
echo "Existem OCP paradas no diretorio //172.22.5.35/integ/UNB/ocp/in verifique anexo" | mutt -s "Existem OCP Paradas" -a /etc/log.txt -- [email protected]
sleep $ESPERA
done
Re: Script para verificar arquivos parados em diretorio
Cara, não use assim, é melhor usar o cron para "chamar" seu script, outra coisa, esse termo "arquivo parado" é coisa de amador mesmo, o termo correto é "verificar se existem" arquivos de determinada extensão dentro de determinado diretório. E eu jamais usaria o 'ls' para fazer isso, estude um pouco mais e resolva com o 'find', não adianta vir aqui achando que fez uma invenção extraordinária. É algo simples com alguns minutos de Google isso já fica mais claro... E tem mais, acho que você complicou muito para chegar ao resultado, existe um princípio chamado KISS = Keep It Simple Stupid = mantenha simples, estúpido!
http://stackoverflow.com/questions/3...s-in-directory
Enviado via XT1580 usando UnderLinux App