[FUG-BR] /etc/crontab NÃO executando
Luiz Otavio O Souza
lists.br em gmail.com
Quinta Maio 26 11:55:38 BRT 2011
On May 25, 2011, at 9:25 AM, irado furioso com tudo wrote:
> Em Mon, 23 May 2011 22:41:56 -0300
> Giancarlo Rubio <gianrubio em gmail.com>, conhecido consumidor/usuário de
> drogas (Windows e BigMac com Coke) escreveu:
>
>> /var/log/cron ou cron -x ??
>>
>
> olá, rubio e demais colegas.
>
> voltando ao assunto (e ao trampo) examinei o log e aí a coisa ficou
> clara como lama de uma vez:
>
> "alguns" aplicativos funcionam normalmente, mas NÃO todos. Por exemplo,
> tomemos trecho do log:
>
> May 25 08:55:00 maquina01 /usr/sbin/cron[30880]: (operator) CMD
> (/usr/libexec/save-entropy) May 25 08:55:00 maquina01 /usr/sbin/cron
> [30881]: (root) CMD (/usr/libexec/atrun)
>
> :.comentario:
>
> as duas linhas acima mostram o funcionamento normal de dois comandos
> existentes no /etc/crontab
>
> :/end comentario
>
> May 25 08:55:00 maquina01 /usr/sbin/cron[30882]: (root) CMD
> (/usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null
> 2>&1)
>
> :comentário: a linha acima mostra um script que NÃO funciona
> quando chamado pelo /etc/crontab; funciona SEM alteração se no
> crontab de usuário (crontab -e)
> /end comentario
>
> a partir daí, tudo se repete. Além disso, noto o seguinte: o "periodic"
> nêsse /etc/crontab não funciona, portanto TUDO o que está nos
> cron.daily, cron.hourly, cron.monthly é ignorado. Contudo, periodic
> ativado diretamente no console e apontado para o período próprio:
>
> /usr/sbin/periodic { daily | weekly | monthly }
>
> também funciona normalmente.
>
> (re)lembrando: o /etc/crontab é o da instalação, intocado, então
> imagino não haja problemas com êle (exceto não funcionar).
>
> bem.. vou continuar olhando essas coisas por aqui, pra mim, nada claro,
> e vamos ver; curioso, né?
>
> grato,
>
Irado,
Pelo que eu me lembre, a única diferença do cron de um usuário comum (/var/cron/tabs/XXXX) para o cron do root (/etc/crontab) é o PATH que é diferenciado.
Ele é setado logo nas primeiras linhas do arquivo (/etc/crontab):
# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: head/etc/crontab 194170 2009-06-14 06:37:19Z brian $
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
Esse PATH é diferente do PATH que você tem quando executa um programa no prompt, por exemplo (no meu caso):
devel# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
Experimente executar o script problemático com o mesmo PATH utilizado pelo cron e o seu problema deve aparecer (algo como):
# env PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin /usr/local/bin/php /usr/local/share/cacti/poller.php
Provavelmente esse script utiliza algum aplicativo que fica fora do PATH especificado no cron.
Se ele aparece lá no log do cron como você mostrou:
> May 25 08:55:00 maquina01 /usr/sbin/cron[30882]: (root) CMD
> (/usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null
> 2>&1)
É pq ele foi executado (agora se ele foi executado com sucesso ou não é que é a questão).
Também desconheço qualquer problema com o periodic (que é um simples shell script em /usr/sbin/periodic, relativamente facil de voce debugar) que não seja relacionado aos problemas com o PATH do cron.
Bem é isso, qualquer novidade é só avisar.
[]'s
Luiz
Mais detalhes sobre a lista de discussão freebsd