Olá,

rodar scripts python através da crontab é bastante simples, mas você tem que 
entender com clareza como o crontab funciona. Parece que tem 2 detalhes que 
você não entende direito.


1) Scripts executados pelo crontab tem saida padrão como qualquer outro 
processo. O que ocorre é que, por padrão, a saida padrao de qualquer coisa que 
é executada pelo cron é jogada para um email destinado ao usuário que roda o 
processo. Se voce não quer receber um email cada vez que o job é executado, 
utilize no final da linha a seguinte sintaxe

>/dev/null 2>&1

Isso redireciona a saida padrao para o /dev/null e a saida padrao de erro para 
a saida padrao.

Se voce quer receber o resultado da execucao do comando por email, tens que ter 
um postfix com relay configurado nesse host. Teste o envio de emails usando o 
"mailx". Configure o redirecionamento de mensagens enviadas para usuarios do 
linux usando o /etc/aliases e executando o newaliases. Se voce nunca fez isso, 
precisara pesquisar um pouco sobre como configurar um postfix.


2) Scripts executados pelo cron são sempre executados por um usuário e seu 
ambiente de variáveis (PATH, PYTHONPATH, etc). Se você configurou seu cron 
usando "crontab -e" num determinado usuario, o comando rodará com esse usuário 
e com seu respectivo ambiente. Pode estar acontecendo do script estar rodando, 
mas você não ter coisas no PATH ou alguma variavel faltando. Para evitar 
problemas, coloque no cron sempre tudo com path ABSOLUTO (desde a raiz do 
sistema).


Acho que isso deve ajudar.

--
Fabiano Weimar dos Santos [Xiru]
http://www.pytown.com
Blog: http://blog.xiru.org
Twitter: xiru
Buzz: xirumacanudo
Skype: xirumacanudo
MSN: xirumacanudo


--- Em zope-pt@yahoogrupos.com.br, "prthorun" <prtho...@...> escreveu
>
> Olá colegas,
> 
> Eu faço backups de um arquivo para a empresa onde eu trabalho usando um 
> script python chamado repozo.
> 
> O comando está correto, quando rodo ele no shell o backup acontece com 
> sucesso, porém preciso setá-lo para rodar todos os dias e já tem algum tempo 
> que estou tendo problemas com o Cron.
> 
> Já tentei o próprio comando na crontab (através do crontab -e) e também já 
> separei o comando em um arquivo e através do cron somente executo o arquivo.
> 
> Todos os dias eu vejo os logs e a pasta de backup pra ver se deu certo e 
> nunca funciona, o Cron executa o comando ou o arquivo corretamente na hora 
> marcada (segundo os logs de /var/logs/cron) mas o backup não acontece.
> 
> PS: Já me disseram que o Cron não aceita scripts que tenham saída em tela 
> então meus scripts não imprimem nada, tenho certeza, e ainda tem o correto 
> direcionamento de erros 2>/dev/null
> 
> Alguém tem alguma idéia do que pode estar acontecendo?
>


Responder a