Script não funcionado corretamente no CRON

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

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 26/11/2013 - 14:50h

Alterando de #!/bin/bash para #!/bin/sh não funciona?


#!/bin/sh
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



  


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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 15:32h

eabreu escreveu:

altera o crontab do root, deixando iqual ao conteúdo abaixo e depois da alteração reinicia o daemon do cron.

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


estou supondo que o interpretador usado no cabeçario do script é o bash.


Mesma coisa!


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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 15:37h

think linux escreveu:

Alterando de #!/bin/bash para #!/bin/sh não funciona?


#!/bin/sh
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


mesma coisa!


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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 15:58h

alexandregms escreveu:

Por acaso vc fez o teste do debug do script (sh -x)?



Sim, e executando na mão, funciona perfeito, o problema acontece quando coloco no CRON.


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

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 26/11/2013 - 16:04h

danielviolin escreveu:

eabreu escreveu:

altera o crontab do root, deixando iqual ao conteúdo abaixo e depois da alteração reinicia o daemon do cron.

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


estou supondo que o interpretador usado no cabeçario do script é o bash.


Mesma coisa!


Faz este teste deixa o crontab assim
20 16 * * * /root/shellpro/IFT/RemoveOldFiles.sh 


e altera o inicio do script de #!/bin/bash para #!/bin/sh e testa.


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

William Amaral de Souza
Williamm

(usa Linux Mint)

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

na hora de colocar no crontab com que usuário está logado?


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

Robson Ramos Barreto
barreto13

(usa Ubuntu)

Enviado em 26/11/2013 - 16:23h

Daniel.

Como o eabreu disse, esta faltando o usuario que ira executar o script.

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


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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 16:23h

think linux.... Já fiz as duas coisas, tudo com o root.





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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 16:36h

barreto13 escreveu:

Daniel.

Como o eabreu disse, esta faltando o usuario que ira executar o script.

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



Não funcionou e teve um log no arquivo: /var/spool/mail/root

From root@zeta.localdomain Tue Nov 26 16:30:02 2013
Return-Path: <root@zeta.localdomain>
X-Original-To: root
Delivered-To: root@zeta.localdomain
Received: by zeta.localdomain (Postfix, from userid 0)
id 128BF2615F; Tue, 26 Nov 2013 16:30:02 -0200 (BRST)
From: root@zeta.localdomain (Cron Daemon)
To: root@zeta.localdomain
Subject: Cron <root@zeta> root /bin/bash /root/shellpro/IFT/RemoveOldFiles.sh
Content-Type: text/plain; charset=ISO-8859-1
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20131126183002.128BF2615F@zeta.localdomain>
Date: Tue, 26 Nov 2013 16:30:02 -0200 (BRST)

/bin/sh: root: command not found


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

Robson Ramos Barreto
barreto13

(usa Ubuntu)

Enviado em 26/11/2013 - 16:39h

danielviolin escreveu:

barreto13 escreveu:

Daniel.

Como o eabreu disse, esta faltando o usuario que ira executar o script.

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



Não funcionou e teve um log no arquivo: /var/spool/mail/root

From root@zeta.localdomain Tue Nov 26 16:30:02 2013
Return-Path: <root@zeta.localdomain>
X-Original-To: root
Delivered-To: root@zeta.localdomain
Received: by zeta.localdomain (Postfix, from userid 0)
id 128BF2615F; Tue, 26 Nov 2013 16:30:02 -0200 (BRST)
From: root@zeta.localdomain (Cron Daemon)
To: root@zeta.localdomain
Subject: Cron <root@zeta> root /bin/bash /root/shellpro/IFT/RemoveOldFiles.sh
Content-Type: text/plain; charset=ISO-8859-1
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20131126183002.128BF2615F@zeta.localdomain>
Date: Tue, 26 Nov 2013 16:30:02 -0200 (BRST)

/bin/sh: root: command not found




Retira o caminho do sh, nao precisa ja que contem no script:

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



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

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/11/2013 - 16:48h

danielviolin escreveu:

barreto13 escreveu:

Daniel.

Como o eabreu disse, esta faltando o usuario que ira executar o script.

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



Não funcionou e teve um log no arquivo: /var/spool/mail/root

From root@zeta.localdomain Tue Nov 26 16:30:02 2013
Return-Path: <root@zeta.localdomain>
X-Original-To: root
Delivered-To: root@zeta.localdomain
Received: by zeta.localdomain (Postfix, from userid 0)
id 128BF2615F; Tue, 26 Nov 2013 16:30:02 -0200 (BRST)
From: root@zeta.localdomain (Cron Daemon)
To: root@zeta.localdomain
Subject: Cron <root@zeta> root /bin/bash /root/shellpro/IFT/RemoveOldFiles.sh
Content-Type: text/plain; charset=ISO-8859-1
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20131126183002.128BF2615F@zeta.localdomain>
Date: Tue, 26 Nov 2013 16:30:02 -0200 (BRST)

/bin/sh: root: command not found


Pois é, anteriormente já tinha visto essa saída e analisando detalhadamente. o final informa o seguinte:

/bin/sh: root: command not found 


"o comando root não foi encontrado - saída passada pelo shell /bin/sh". suponho que editou o crontab do usuário root usando o comando crontab -e, por isso não foi necessário usar o usuário na coluna que antecipa o comando a ser executado.

suponho também que mesmo alterando a variavél SHELL="/bin/sh" para SHELL="/bin/bash" não funcionou pois ele executa o comando com o shell /bin/sh.

acrédito que a solução seria deixar o script para rodar com /bin/sh (incluindo o mesmo no cabeçario do script) e em seguida editar o crontab do root com o comando crontab -e e incluir a entrada sem o nome do usuário. e depois reiniciar o serviço do cron.

entrada para ser deixada dentro do cron:

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


muda também a variavel para SHELL="/bin/sh"


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

Daniel
danielviolin

(usa Red Hat)

Enviado em 26/11/2013 - 16:48h

Retira o caminho do sh, nao precisa ja que contem no script:

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


Feito, e retornou erro tbm, segue:

From root@zeta.localdomain Tue Nov 26 16:47:01 2013
Return-Path: <root@zeta.localdomain>
X-Original-To: root
Delivered-To: root@zeta.localdomain
Received: by zeta.localdomain (Postfix, from userid 0)
id DEF362615F; Tue, 26 Nov 2013 16:47:01 -0200 (BRST)
From: root@zeta.localdomain (Cron Daemon)
To: root@zeta.localdomain
Subject: Cron <root@zeta> root /root/shellpro/IFT/RemoveOldFiles.sh
Content-Type: text/plain; charset=ISO-8859-1
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20131126184701.DEF362615F@zeta.localdomain>
Date: Tue, 26 Nov 2013 16:47:01 -0200 (BRST)

/bin/sh: root: command not found






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts