Onde está meu arquivo de log do crontab?

9

no / var / log / cron, no /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
it_is_a_literature
fonte

Respostas:

13

Eu acho que em debian cronescreve entra /var/log/syslog.
Se o seu sistema depende rsyslogou syslogdvocê pode verificar e descomentar na linha /etc/rsyslog.confou /etc/syslog.confna linha:

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

e, em seguida, reinicie os serviços.

Se o seu sistema depende, systemdpor exemplo, você pode verificar com o seguinte comando:

journalctl _COMM=cron

ou

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

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

taliezin
fonte
não há /etc/rsyslog.con e /etc/syslog.conf no meu debian7.
it_is_a_literature
Para o primeiro arquivo, é um erro de digitação deve ser /etc/rsyslog.conf se você não estiver com o systemd.
taliezin
que tal sudo journalctl --since yesterday -u cron.service? O que é _COMM?
dashesy
4

Por padrão, a saída dos crontabtrabalhos é enviada para o endereço de email local do usuário proprietário. por exemplo: A crontabsaída para um usuário no host www.aDomain.com seria enviada para [email protected] . O sistema usa sua mala direta padrão para realizar a tarefa.

Você pode desviar essa saída para um endereço de email alternativo adicionando uma MAILTOdeclaração 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 email externo para receber logs do crontab. As mensagens enviadas com frequência 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 dos seus comandos crontab para um arquivo de sua escolha. No exemplo abaixo, a saída stdoute stderré enviada para /tmp/aJob.log. Este 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 stderrlogs para email e stdoutlogs para um arquivo. Nesse caso, você é alertado por email quando seus crontabcomandos geram mensagens de erro inesperadas. A diferença com o exemplo anterior 2>&1é removida para permitir que a stderrsaída vá para o console e, portanto, envie por email.

# 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 crontab e comando crontab

ikrabbe
fonte
1

Como isso não está marcado com o debian e também aparece nas pesquisas do fedora, aqui está como verificar o fedora recente (baseado em systemd):

sudo systemctl status crond

Saída típica

 crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

e allos logs com

journalctl --unit crond -n all
eddygeek
fonte