Script não funcionado corretamente no CRON

1. Script não funcionado corretamente no CRON

Daniel
danielviolin

(usa Red Hat)

Enviado em 25/11/2013 - 08:45h

Bom dia Pessoal,

Depois de muito tempo quebrando a cabeça e não conseguir nenhuma solução, venho fazer a pergunta aqui.

Tenho um script que remove alguns arquivos de uma área temporária depois de 60 dias, e o mesmo, salva a lista de arquivos que foram apagado num arquivo de log e manda essa lista no corpo do e-mail, utilizando o comando mail.

Se eu executar o script na mão, ele funciona perfeitamente!!! porém se eu coloco ele no CRON,
esse script manda o e-mail, porém não vem mais o corpo de e-mail, ele vem em anexo um arquivo .dat apenas isso.

Já fiz de tudo para tentar resolver e não consegui, alguém já passou por isso?

O que mudou foi o S.O, antes era o FEDORA release 6 (Zod) e agora passou a ser o CENTOS 6.4.

Segue script:

#!/bin/bash
remove_date=`date +%Y_%m_%d`
log=/root/shellpro/IFT/log/Remove/RemoveOldFiles_$remove_date.log
tmp=/root/shellpro/IFT/FilesForDelete-tmp.txt
touch $tmp
dias=60
cd /dados/downloads-oldfiles
echo -e "Data da Ultima Atualização: `date` " > $log
echo " " >>$log
echo "================= Arquivos com mais de $dias dias, Marcados para EXCLUSÃO! ================= " >>$log
echo " " >>$log
echo "." >>$log

find /dados/downloads-oldfiles *.* -type f -atime +$dias | grep -v aquota.group | grep -v aquota.user | grep -v index.html >$tmp

while read x
do
echo -e "\n Removendo o arquivo: $x " >> $log
rm -f "$x" >> $log
number=`expr $number + 1`
echo " " >>$log
done <$tmp
chmod 777 $log
echo `cat $log` | mail -s "LOG dos Arquivos Excluidos do IFT (Internet File Transfer) ROMI " sistema@dominio.com



  


2. Re: Script não funcionado corretamente no CRON

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 25/11/2013 - 09:58h

Tente trocar a ultima linha:


/bin/mail -s "LOG dos Arquivos Excluidos do IFT (Internet File Transfer) ROMI " sistema@dominio.com < $log




3. Re: Script não funcionado corretamente no CRON

Daniel
danielviolin

(usa Red Hat)

Enviado em 25/11/2013 - 10:46h

Mesma coisa. :(

como executando manualmente funciona e no cron não?




4. Re: Script não funcionado corretamente no CRON

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 25/11/2013 - 10:50h

danielviolin escreveu:

Mesma coisa. :(

como executando manualmente funciona e no cron não?



Na linha do find adicione o caminho completo ex :/usr/bin/find parametros


5. Re: Script não funcionado corretamente no CRON

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 25/11/2013 - 11:28h

Também veja os logs para ver se tem alguma pista


6. Re: Script não funcionado corretamente no CRON

Daniel
danielviolin

(usa Red Hat)

Enviado em 25/11/2013 - 15:10h

André, muito obrigado pelas dicas!

porém não consegui descobrir nada nos logs mesmo utilizando o "tail -f", e alterando o script conforme solicitado, também não funcionou.

Segue link da imagem do E-mail que recebo: http://www.4shared.com/photo/2f5P5IGW/email_problema.html




7. Re: Script não funcionado corretamente no CRON

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 25/11/2013 - 15:50h

danielviolin escreveu:

André, muito obrigado pelas dicas!

porém não consegui descobrir nada nos logs mesmo utilizando o "tail -f", e alterando o script conforme solicitado, também não funcionou.

Segue link da imagem do E-mail que recebo: http://www.4shared.com/photo/2f5P5IGW/email_problema.html



Como esta a configuração do cron ?

no final da linha adicione :

> /dev/null 2>&1

ex:


00 07 * * * /usr/local/bin/reboot_router.sh > /dev/null 2>&1


Se estiver saída neste script ele vai falhar mesmo.




8. Re: Script não funcionado corretamente no CRON

Daniel
danielviolin

(usa Red Hat)

Enviado em 25/11/2013 - 16:30h

Meu Cron estava assim:
20 16 * * * sh /root/shellpro/IFT/RemoveOldFiles.sh >/dev/null

Fiz o que você me pediu e deu o mesmo problema no e-mail.

Muito estranho.


9. Re: Script não funcionado corretamente no CRON

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 25/11/2013 - 20:09h

tente assim

20 16 * * * /bin/sh /root/shellpro/IFT/RemoveOldFiles.sh


10. Re: Script não funcionado corretamente no CRON

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 25/11/2013 - 22:44h

Faça assim pra gente matar essa charada de uma vez por todas:
Vá à pasta /tmp e execute o seu script de lá com "sh -x", exemplo:

user1@ServerX:/tmp$ sh -x /caminho/seu_script.sh

Veja onde vai dar erro e poste aqui :-)


11. Re: Script não funcionado corretamente no CRON

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/11/2013 - 23:19h

danielviolin escreveu:

Bom dia Pessoal,

Depois de muito tempo quebrando a cabeça e não conseguir nenhuma solução, venho fazer a pergunta aqui.

Tenho um script que remove alguns arquivos de uma área temporária depois de 60 dias, e o mesmo, salva a lista de arquivos que foram apagado num arquivo de log e manda essa lista no corpo do e-mail, utilizando o comando mail.

Se eu executar o script na mão, ele funciona perfeitamente!!! porém se eu coloco ele no CRON,
esse script manda o e-mail, porém não vem mais o corpo de e-mail, ele vem em anexo um arquivo .dat apenas isso.

Já fiz de tudo para tentar resolver e não consegui, alguém já passou por isso?

O que mudou foi o S.O, antes era o FEDORA release 6 (Zod) e agora passou a ser o CENTOS 6.4.

Segue script:

#!/bin/bash
remove_date=`date +%Y_%m_%d`
log=/root/shellpro/IFT/log/Remove/RemoveOldFiles_$remove_date.log
tmp=/root/shellpro/IFT/FilesForDelete-tmp.txt
touch $tmp
dias=60
cd /dados/downloads-oldfiles
echo -e "Data da Ultima Atualização: `date` " > $log
echo " " >>$log
echo "================= Arquivos com mais de $dias dias, Marcados para EXCLUSÃO! ================= " >>$log
echo " " >>$log
echo "." >>$log

find /dados/downloads-oldfiles *.* -type f -atime +$dias | grep -v aquota.group | grep -v aquota.user | grep -v index.html >$tmp

while read x
do
echo -e "\n Removendo o arquivo: $x " >> $log
rm -f "$x" >> $log
number=`expr $number + 1`
echo " " >>$log
done <$tmp
chmod 777 $log
echo `cat $log` | mail -s "LOG dos Arquivos Excluidos do IFT (Internet File Transfer) ROMI " sistema@dominio.com


e depois falou:

danielviolin escreveu:

Meu Cron estava assim:
20 16 * * * sh /root/shellpro/IFT/RemoveOldFiles.sh >/dev/null

Fiz o que você me pediu e deu o mesmo problema no e-mail.

Muito estranho.


Analisando cada post, deu pra perceber o seguinte....

1º - Se o script é executado normalmente na "mão", então suponho que o problema pode está na sintaxe do do arquivo crontab

2º - Analisando seu arquivo crontab deu pra ver uma coisa interessante. que você está executando o script pelo cron usando um usuário chamado sh.

Perguntas:

1º -Com qual usuário está executando o script na "mão" ?

2º - Esse usuário existe no seu sistema e se existe o mesmo tem permissão para acessar e gravar a pasta /root ? pois até onde sei a pasta /root só pode ser acessada pelo root.

Retorna ai..


12. Re: Script não funcionado corretamente no CRON

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 07:54h

foxbit3r escreveu:

tente assim

20 16 * * * /bin/sh /root/shellpro/IFT/RemoveOldFiles.sh


Mesma coisa! :/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts