Onde está o meu arquivo de log do crontab?

6

não / var / log / cron, não /var/log/cron.log no meu debian7, onde está o meu arquivo de log do crontab?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
    
por it_is_a_literature 26.06.2015 / 10:19

2 respostas

7

Eu acho que debian cron escreve registros em /var/log/syslog .
Se o seu sistema depender de rsyslog ou syslogd , você poderá verificar e descomentar em /etc/rsyslog.conf ou /etc/syslog.conf da linha:

# cron.* /var/log/cron.log

e, em seguida, reinicie os serviços.

Se o seu sistema depende de systemd , por exemplo, você pode verificar com o seguinte comando:

journalctl _COMM=cron

ou

journalctl _COMM=cron --since="date" --until="date"

Para o formato de data, você pode verificar journalctl .

    
por 26.06.2015 / 10:35
2

Por padrão, a saída de crontab jobs é enviada para o endereço de e-mail local do usuário proprietário. por exemplo: a saída crontab para aUser no host www.aDomain.com será enviada para [email protected] . O sistema usa o seu mailer padrão para realizar a tarefa.

Você pode desviar essa saída para um endereço de e-mail alternativo adicionando uma instrução MAILTO no arquivo crontab. Por exemplo:

# Mail any output to [email protected], no matter whose crontab this is
[email protected]
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

Tenha cuidado ao usar um endereço de e-mail externo para receber logs do crontab. Mensagens frequentemente enviadas podem ser capturadas em um filtro de spam. Você teria que marcar as mensagens como Não é Spam para serviços como Yahoo, HotMail ou Gmail.

Uma solução alternativa seria redirecionar a saída de seus comandos crontab para um arquivo de sua escolha. No exemplo abaixo, a saída stdout e stderr é enviada para /tmp/aJob.log . Esse método elimina a possibilidade de uma mensagem de email ser enviada.

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

Outra alternativa é enviar stderr logs para email e stdout logs para um arquivo. Nesse caso, você será alertado por e-mail quando seus comandos crontab gerarem mensagens de erro inesperadas. A diferença com o exemplo anterior é que 2>&1 é removido para permitir que stderr output vá para o console e, portanto, envie por e-mail.

# Mail any output to [email protected], no matter whose crontab this is
[email protected]    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

Leia mais tabelas do crontab e comando crontab

    
por 26.06.2015 / 10:56

Tags