Logo Hardware.com.br
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas

[Resolvido] crontab não executa

#1 Por Fndiaz 26/07/2010 - 11:41
Pessoal tenho um script em .sh onde, ele verifica se a internet está ok, pingando em algum site, caso a internet estiver fora, ele faz ela subir.

O problema é que este script não está sendo rodado pelo cron, apesar do log dizer que ele está sendo executado.
Na mão ele roda normal.

eu já dei direito de execução para o script chmod +x script

e adicionei a seguinte regra no cron:
*/5 * * * * root /etc/script/script.sh

Alguem sabe o que pode ser???
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas
#5 Por Fndiaz
26/07/2010 - 17:33
Ok...primeiramente eu abri o cron como comando crontab -e e adicionei a linha
*/5 * * * * root /etc/script/testa-rede.sh

Depois dei permissão de execução para o script chmod +x script.sh

no log da cron, ele me apareceu rodando de 5 em 5 minutos.

Mais não executa, ele só executa na mão msmo!!!


Aqui vai o script:
ping -c 1 -W 1 www.google.com

if [ $? == 0 ]
then
break

else
service rede stop
service rede start
fi
"Na origem de qualquer erro cuja culpa é do computador, você encontrará pelo menos dois erros humanos,
incluindo o erro de estar culpando o computador."
_________
raivoso.png
mshonorato
mshonorato General de Pijama Registrado
3.8K Mensagens 156 Curtidas
#7 Por mshonorato
27/07/2010 - 08:30
Fndiaz disse:
Ok...primeiramente eu abri o cron como comando crontab -e e adicionei a linha
*/5 * * * * root /etc/script/testa-rede.sh

Depois dei permissão de execução para o script chmod +x script.sh

no log da cron, ele me apareceu rodando de 5 em 5 minutos.

Mais não executa, ele só executa na mão msmo!!!

Aqui vai o script:


Em primeiro lugar abra o crontab como root

# crontab -e

E deixe assim:

*/5 * * * * /etc/script/testa-rede.sh

Pq vc está dando permissão para "script.sh" se seu script chama "testa-rede.sh"?
Depois dei permissão de execução para o script chmod +x script.sh
E inseira o #! /bin/bash como indicado pelo colega acima.

flw
Marcos Honorato
Debian Bullseye
kubuntu 22.04.2 LTS
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas
#8 Por Fndiaz
27/07/2010 - 10:44
Core_Dump disse:
Seu script comeca com a seguinte linha?

#! /bin/bash
A linha invoca o shell para executar o script.


Na verdade ele não continha, porém adicionei a linha e o cron continua não executando ele.

mshonorato
Quando me referi ao scrip.sh, me referi ao testa-rede.sh

olha a permissão ae:
-rwxr-xr-x 1 root root 157 Jul 27 10:30 testa-rede.sh
"Na origem de qualquer erro cuja culpa é do computador, você encontrará pelo menos dois erros humanos,
incluindo o erro de estar culpando o computador."
_________
raivoso.png
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas
#10 Por Fndiaz
27/07/2010 - 17:14
mshonorato disse:
Vc tirou o root da linha do crontab deixando assim:

*/5 * * * * /etc/script/testa-rede.sh

E como vc está vendo se ele está executando ou não?


Vou tentar o teste sem o root e posto resultado....

estou vendo pelo log

tail -f /var/log/cron
Jul 27 17:04:01 crond[22702]: (root) CMD (root /etc/script/teste.sh)
Jul 27 17:04:01 crond[22704]: (root) CMD (cd /etc/script/testa-rede.sh )
Jul 27 17:05:01 crond[22716]: (root) CMD (root /etc/script/teste.sh)
Jul 27 17:05:01 crond[22718]: (root) CMD (cd /etc/script/testa-rede.sh )
Jul 27 17:06:01 crond[22728]: (root) CMD (root /etc/script/teste.sh)
Jul 27 17:06:01 crond[22729]: (root) CMD (cd /etc/script/testa-rede.sh )
Jul 27 17:07:01 crond[22742]: (root) CMD (root /etc/script/teste.sh)
Jul 27 17:07:01 crond[22743]: (root) CMD (cd /etc/script/testa-rede.sh )
"Na origem de qualquer erro cuja culpa é do computador, você encontrará pelo menos dois erros humanos,
incluindo o erro de estar culpando o computador."
_________
raivoso.png
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas
#12 Por Fndiaz
27/07/2010 - 17:17
S-k disse:
service rede stop, é algum serviço que esta no /etc/init.d? Ou é algum programa que usa interface gráfica GUI?


Isso msmo....
service rede stop e service rede start, são serviços q fiz, e se localizam no init.d
"Na origem de qualquer erro cuja culpa é do computador, você encontrará pelo menos dois erros humanos,
incluindo o erro de estar culpando o computador."
_________
raivoso.png
Fndiaz
Fndiaz Super Participante Registrado
376 Mensagens 10 Curtidas
#14 Por Fndiaz
27/07/2010 - 17:36
S-k disse:
Já entendi que start e stop são parâmetros do seu script. Certo?

O script com nome de "service rede" tem espaço entre eles?

/etc/init.d/service rede


Certo, isso msmo, start e stop são parâmetros do meu serviço rede

O nome do script eh apenas rede
onde eu o chamo: service rede (start ou stop)
"Na origem de qualquer erro cuja culpa é do computador, você encontrará pelo menos dois erros humanos,
incluindo o erro de estar culpando o computador."
_________
raivoso.png
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal