Script funciona digitando, mas nao funciona no cron

1. Script funciona digitando, mas nao funciona no cron

Francisco
fcbinfo

(usa CentOS)

Enviado em 25/09/2010 - 20:36h

Bom, vamos la.

fiz um script assim:

nome: restart_firewall
pasta: /scripts

script:

#!/bin/bash

service iptables restart
csf -r
sysctl -w net.ipv4.netfilter.ip_conntrack_max=1200000


Bom, o problema é o seguinte, quando eu vou no console e digito ./scripts/restart_firewall o script funciona direitinho, mas eu preciso que ele seja rodado de meia em meia hora entao coloquei no crontab.

meu crontab:

*/30 * * * * /scripts/restart_firewall

Ai recebo no meu e-mail de meia em meia hora a seguinte mensagem:

/scripts/restart_firewall: line 3: service: command not found
/scripts/restart_firewall: line 4: csf: command not found
/scripts/restart_firewall: line 5: sysctl: command not found


Onde esta o erro, alguem poderia me ajudar ?

Obrigado.


  


2. Script funciona digitando, mas nao funciona no cron

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/09/2010 - 19:55h

Cara não está sendo reconhecido os comandos.
tente colocá-lo completo como por exemplo:

/etc/init.d/squid restart


3. Re: Script funciona digitando, mas nao funciona no cron

John Theo
johntheo

(usa Ubuntu)

Enviado em 28/09/2010 - 15:34h

Estou com o mesmo problema os erros sao os seguintes:
.../monitor.sh: line 18: cat: command not found
.../monitor.sh: line 19: cat: command not found
.../monitor.sh: line 20: cp: command not found
.../monitor.sh: line 21: rm: command not found

... - > é o resto da arvore do arquivo.


o script é:
#!/bin/bash

_DIR=/home/e9502028/cgr_noc/monitoramento_principal/
_lista=/home/e9502028/cgr_noc/monitoramento_principal/lista.txt
_DIR2=/app/www/html/tx/cgr/monitoramento_principal/
_contador=0
for i in `cat $_lista`;
do
_nome_exibicao=$(echo "$i" | cut -f 1 -d ";")
_elemento=$(echo "$i" | cut -f 2 -d ";")
_id=$(curl "<link utilizando um filtro com _elemento" 2> /dev/null | tr "\t" ";" | cut -f 1 -d ";"
| tail -n 1)
_link="<concateno o link aqui com a informação vinda de _id"

echo "nomes[$_contador]=\"$_nome_exibicao\"" >> $_DIR/html_mid
echo "graficos[$_contador]=\"$_link\"" >> $_DIR/html_mid

let _contador=_contador+1
done
cat html_top html_mid html_bot > $_DIR/graficos.htm
cp $_DIR/graficos.htm $_DIR2
rm $_DIR/html_mid

Já não é o primeiro script que eu tenho esse erro.
Agradeço a ajuda de qm puder.



4. Re: Script funciona digitando, mas nao funciona no cron

Luiz Henrique da Silva Rocha
homemletra

(usa Ubuntu)

Enviado em 04/11/2010 - 12:54h

Eu também passei por esse erro, mas no meu caso, uma variável global do script substituía a variável do sistema PATH, que contém o caminho para os comandos nativos do linux. Veja se em algum local do script de vocês (ou em algum script que o script de vocês chama) a variável PATH é substituída ou é atribuído a ela um novo valor. No meu caso, quando eu renomeei a variável $PATH do meu script para $CAMINHO, ele funcionou.

Façam um teste: coloquem um echo $PATH como o primeiro e o último comando do script e comparem as saídas.
Boa sorte!

P.S.: uma saída normal para essa variável é algo parecido com /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


5. Re: Script funciona digitando, mas nao funciona no cron

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/11/2010 - 17:23h

Novamente ele não está reconhecendo os comandos cat, rm.
Mas esses comandos são nativos do linux então creio que o comando completo está errado. por exemplo:

mdadm --create -verbose Esse comando é para criar um raid em linux, é um comando real, mas se eu tivesse errado no meio dele por exemplo ele voltaria para mim como mdadm not found, só que o comando existe, mas foi colocado de forma errada. Ou pode ser que eles realmente não estejam no sistma, deu uma olhada no /bin ou /sbin.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts