script chamado por crontab nao executa [RESOLVIDO]

1. script chamado por crontab nao executa [RESOLVIDO]

Rafael Schadeck
raschadeck

(usa Ubuntu)

Enviado em 01/06/2011 - 10:52h

Seguinte, tenho uma linha no crontab que chama um script...

ele roda certinho conforme vi no meu log do sistema

porém só quando eu comento uma das linhas do meu script.
o estranho é q se eu executo o script com essa linha descomentada manualmente, ele vai certinho, mas se eu chamo o script com o crontab ele nao executa aquela linha só.


é uma linha do sarg para gerar um relatorio

mais ou menos assim (to sem o script em maos,mas eh quase isso eu acho)

/usr/bin/sarg -f /etc/squid/sarg-mes.conf -d 01/05/%ano-01/06/%ano

essa linha ai em cima só executa quando eu executo o script manualmente.
no crontab nao executa só ela.



ja botei o bash em cima do script

ele tem umalinha em branco embaixo
jadei o chmod +x nele


nao sei o q ta acontecendo


VALEU


  


2. Re: script chamado por crontab nao executa [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 01/06/2011 - 11:48h

você está executando ele no crontab do root?

veja qual é o dono do script

ls -lh /local/do/seu/script



3. Re: script chamado por crontab nao executa [RESOLVIDO]

Rafael Schadeck
raschadeck

(usa Ubuntu)

Enviado em 01/06/2011 - 11:54h

root@ubuntu:~# ls -lh /etc/squid/scripts/scriptrotatelog.sh
-rwxrwxrwx 1 root root 5,2K 2011-06-01 10:46 /etc/squid/scripts/scriptrotatelog.sh


ta ai

é do root


na real eu executo tudo em root
nunca nem logueiem outro usuário.


4. Re: script chamado por crontab nao executa [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 01/06/2011 - 12:22h

Verifique se o script gera alguma saída na tela quando executado manualmente.

Caso exiba o cron não consegue executá-lo mesmo, então você terá que tirar as mensagens geradas.

posta a linha que você usa para chamar o script no crontab


5. Re: script chamado por crontab nao executa [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 01/06/2011 - 22:00h

veja o seguinte:
quando você roda o script ele adota como diretório de referência, o diretório onde o script está sendo executado, no seu caso:
/etc/squid/scripts/

Então se for referenciar outro arquivo ou diretório, tem que informar a partir do diretório de referência do script ou informar o caminho completo, no seu caso, veja o que esse comando faz:
"sarg-mes.conf -d 01/05/%ano-01/06/%ano" pois se criar algum arquivo ou diretório que é usado depois, precisa do caminho absoluto, tipo :/xxx/xxx/xxx

veja ai...


6. Re: script chamado por crontab nao executa [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 01/06/2011 - 22:03h

Outro detalhe:
"na real eu executo tudo em root
nunca nem logueiem outro usuário."

Cuidado, isso não é recomendado, nem os usuários "avançados" usam essa prática, pois coloca o sistema em risco em vista que qualquer erro ao fazer um 'teste' pode comprometer o sistema todo, ...tipo fazer um script que use uma variável para apagar um diretório:
DIR='algumacoisa'
rm -rf /$DIR

e se o dir vier vazio.... vai apagar o sistema todo.

Bom, você deve saber o que faz, abraços


7. Re: script chamado por crontab nao executa [RESOLVIDO]

Rafael Schadeck
raschadeck

(usa Ubuntu)

Enviado em 02/06/2011 - 09:15h

com relacao a obs sua...
uso o meu servidor apenas para firewall e proxy...

a unica coisa que eu uso nele sao os geradores de relatórios e edito o meu squid.conf e o meu firewall.sh


nao vi a necessidade de utilizar um outro usuario... enfim.

como eu tiro as mensagens que ele gera???

o comando que eu uso no terminal é o mesmo que eu uso no meu script

/usr/bin/sarg -f /etc/squid/sarg-mes.conf -d 01/05/%ano-01/06/%ano

mas claro, com o %ano 2011
aí ele gera certinho, mas pelo script ele nao roda (quando executado pelo crontab)
se eu executo o script normalmente ele também roda certinho...
por isso nao entendo o que pode tar acontecendo... ach oq é esse esquema de gerar umamensagem.
apesar denao ter nenhum echo, ele diz algo parecido com :
SARG (bla bla bla, coisas de porcentagem da leitura do documento)


sei q tem como botar uma saída no crontab para o log, acho q isso resolveria...

como q eu tenho q fazer daí???


Grato mais uma vez.
Rafael Scahdeck


8. Re: script chamado por crontab nao executa [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 02/06/2011 - 11:28h

Você disse que ele dá umas mensagens, então vai ser isso mesmo, por isso ele não está executando.

Vê se esses artigos te ajuda em alguma coisa

http://www.vivaolinux.com.br/artigo/Gerando-relatorios-no-Sarg-com-nome-da-maquina-usuario-ao-inves-...
http://www.vivaolinux.com.br/artigo/Gerenciando-relatorios-do-SARG/


9. Re: script chamado por crontab nao executa [RESOLVIDO]

Pedro Henrique de Almeida
Neo_X

(usa CentOS)

Enviado em 17/06/2011 - 10:33h

Olá conseguiu resolver o problema da execução do script? Estou com o mesmo problema, ja li esses links ai, mas não adiantou.


Valeu


10. Re: script chamado por crontab nao executa [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 17/06/2011 - 11:00h

Só uma pergunta ... no seu script, se voce fixar o 2011 ao invés de %ano ... funciona?


11. Re: script chamado por crontab nao executa [RESOLVIDO]

Rafael Schadeck
raschadeck

(usa Ubuntu)

Enviado em 17/06/2011 - 11:03h

ja tentei varias coisas tbm...ainda nao resolvi, meio q abandonei a causa...

uma alternativa q eu tentei tabmém é a de jogar um .log das mensagens q o crontab gera (motivo de nao executar o comando adequadamente)

é algo como "comando" $> (caminho do log)
tipo
/etc/usr/bin/relatorio/script.sh &> /etc/squid/relatorios/relatorio_erros.txt



com relacao a variavel de ano

nao, ele nao executa mesmo deixando 2011


12. Re: script chamado por crontab nao executa [RESOLVIDO]

Natanael Henrique
n4t4n

(usa Arch Linux)

Enviado em 17/06/2011 - 11:17h

Façam como no artigo do Junior Menezes: http://www.vivaolinux.com.br/artigo/Gerando-relatorios-no-Sarg-com-nome-da-maquina-usuario-ao-inves-...
Fazendo assim o cron vai executar o script que tem o comando e não o comando diretamente. Para aumentar as chances de sucesso façam o teste executando o script manualmente e observem se ele gera mensagens.

Outra coisa que pode estar atrapalhando é o nome do arquivo que ele cria, pois o nome está assim

date --date "0 day ago " +%d/%m/%Y

Isso pode confundir o sarg ao criar o relatório, pois ele pode pensar que 17/06/11 é um arquivo de nome 11 dentro da pasta 06 que por sua vez está abaixo do diretório 17, então para minimizar as chances de dar errado mudem o separador de / para - ou outro de sua escolha como . por exemplo.

Também redirecionem a saída de erros para algum lugar (arquivo) ou simplesmente descartem a mensagem do erro adicionando ao final, na linha do comando o seguinte: 2> /dev/null ficando o exemplo da seguinte forma.

#!/bin/bash

INICIO=$(date --date "0 days ago" +%d-%m-%Y)
FIM=$(date --date "0 day ago " +%d-%m-%Y)
sarg -f /etc/squid/sarg.conf -d $INICIO-$FIM -p -x -z 2> /dev/null



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts