[SP-pm] [OFF-TOPIC] Cron

Luis Motta Campos luismottacampos em yahoo.co.uk
Quinta Abril 17 14:22:17 PDT 2008


André Garcia Carneiro wrote:
> Olá Pessoal!
> 
> Estou com um problema que parece ser simples, mas não menos chato!
> Tenho no meu crontab uma linha assim:
> 
> 00   14   *   *   *   /usr/bin/perl
> /home/joenio/workcopy/scap/alter_americanas_xml.pl
> 
> Ele deveria rodar esse script perl(alter_americanas_xml.pl), mas não
> roda de jeito nenhum. Não tem erros, e se eu rodo 'na mão', ele
> funciona. O usuário é o mesmo, então o que está errado? Que tipo de
> restrição o cron tem para rodar coisas? E onde ele grava o bendito
> log, que eu não acho. Fiz RTFM no man do cron, mas não obtive nada
> útil... Se alguém tiver alguma informação, agradeceria se me
> passasse.

O Cron loga para o syslog. Isso quer dizer que os logs que você procura 
estão em /var/log/{messages,syslog}

O cron também (nos linuxes) pode mandar stdout / stderr para um email. 
Seta MAIL=teu em email.com no começo do teu crontab, e coloca o teu script 
em "verbose mode".

> Alguém me disse que o script não funcionaria, se tivesse 'prints' na
> tela. Não fez muito sentido pra mim, mas de qualquer forma, as saídas
> do script vão para um log em arquivo, então não parece ser esse o
> problema.

O Cron também registra a tentativa de execução (e mensagens de erro) no 
syslog. TEM de estar lá, ou você não colocou esta coisa no cron.

Como você edita o teu crontab, e onde voce coloca o teu arquivo de jobs?

Outra coisa: dependendo que que crontab você está usando, o Cron vai 
usar permissões diferentes das tuas para tentar rodar o programa. 
Certifique-se de que você pode ler e executar o programa, e que você 
pode ler os diretórios para cima, até o "/".

Espero que isso ajude.
Putamplexos!

-- 
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}


Mais detalhes sobre a lista de discussão SaoPaulo-pm