Como impedir que o Cron envie mensagens sobre erros

2

Eu tenho este estranho e-mail vindo do cron:

Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by domain.com (Postfix, from userid 0)
    id 6F944264D0; Mon, 10 Jan 2011 10:35:01 +0000 (UTC)
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <root@domain> lynx -dump http://www.domain.com/cron/realqueue
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Message-Id: <[email protected]>
Date: Mon, 10 Jan 2011 10:35:01 +0000 (UTC)

/bin/sh: lynx: not found

Eu tenho este cron configurações no arquivo crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


*/5 * * * * lynx -dump http://www.domain.com/cron/realqueue

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

O Lynx também está instalado no meu Ubuntu.

Ofc no lugar de domain.com é meu domínio, apenas substituído.

Obrigado;)

    
por Somebody 12.01.2011 / 17:54

6 respostas

10

Você deve verificar se o binário do lynx está em um dos locais especificados na variável PATH ou usar o caminho completo para o binário na linha do cron. Para suprimir os erros, você deseja redirecionar STDERR e STDOUT para / dev / null, assim:

*/5 * * * * lynx -dump http://www.domain.com/cron/realqueue >/dev/null 2>&1

O primeiro redirecionamento envia STDOUT para / dev / null, e o segundo envia STDERR com STDOUT (ou seja, para / dev / null).

    
por 12.01.2011 / 18:06
3

A verdadeira questão aqui é esta:

/bin/sh: lynx: not found

Isso está dizendo que o lynx não foi encontrado, e que a linha no seu crontab não está sendo executada. Suprimindo os erros usando as sugestões de redirecionamento do Scrivener ou blueben, você acabou de esconder o fato de que o comando que você quer realmente executar não está sendo executado.

Em geral, o cron irá enviar esses emails para mensagens de erro. A melhor maneira de suprimir os emails é corrigir os erros, e somente se você não puder corrigir os erros (por exemplo, o script é sempre barulhento) você deve começar a redirecionar a saída para / dev / null.

    
por 12.01.2011 / 18:35
3

Adicione o MAILTO ao topo do seu crontab e configure-o para uma string nula:

 MAILTO=""
    
por 21.03.2011 / 20:14
1

Você quer:

* / 5 * * * * lynx -dump link > > / dev / null 2 > & 1

    
por 12.01.2011 / 18:09
1

Se você quiser o caminho para o binário do lince, o comando mais simples é which lynx .

Isso deve lhe dar algo como /usr/bin/lynx

    
por 30.04.2012 / 13:16
0

talvez os binários do lynx não estejam registrados no $ PATH.

tente isso no seu shell:

# locate lynx

ele retornará algumas strings. Escolha o que leva a binários de lince e faça

# export PATH=$PATH:{the firstly returned string path until last dir}
    
por 12.01.2011 / 18:33

Tags