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
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
Respostas:
Eu acho que em debian
cron
escreve entra /var/log/syslog
.
Se o seu sistema depende rsyslog
ou syslogd
você pode verificar e descomentar na linha /etc/rsyslog.conf
ou /etc/syslog.conf
na linha:
# cron.* /var/log/cron.log
e, em seguida, reinicie os serviços.
Se o seu sistema depende, systemd
por 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 .
sudo journalctl --since yesterday -u cron.service
? O que é _COMM
?
Por padrão, a saída dos crontab
trabalhos é enviada para o endereço de email local do usuário proprietário. por exemplo: A crontab
saída para um usuário no host www.aDomain.com seria enviada para aUser@www.aDomain.com . 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 MAILTO
declaração no arquivo crontab. Por exemplo:
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# 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 stdout
e 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 stderr
logs para email e stdout
logs para um arquivo. Nesse caso, você é alertado por email quando seus crontab
comandos geram mensagens de erro inesperadas. A diferença com o exemplo anterior 2>&1
é removida para permitir que a stderr
saída vá para o console e, portanto, envie por email.
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# 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
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 all
os logs com
journalctl --unit crond -n all