我的crontab日志文件在哪里?


9

在我的debian7上没有/ var / log / cron,没有/var/log/cron.log,我的crontab日志文件在哪里?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory

Answers:


13

我认为debian cron写入日志/var/log/syslog
如果您的系统依赖,rsyslog或者syslogd您可以在行中/etc/rsyslog.conf/etc/syslog.conf行中检查和取消注释:

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

然后重新启动服务。

例如,如果您的系统依赖于systemd您,则可以使用以下命令进行检查:

journalctl _COMM=cron

要么

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

对于日期格式,您可以检查journalctl


我的debian7中没有/etc/rsyslog.con和/etc/syslog.conf。
it_is_a_literature

如果不是systemd,则第一个文件是错字,应该是/etc/rsyslog.conf。
taliezin 2015年

那又如何sudo journalctl --since yesterday -u cron.service呢?什么_COMM
dashesy

4

默认情况下,crontab作业的输出将发送到拥有用户的本地电子邮件地址。如:crontab输出aUser主机www.aDomain.com将被发送到aUser@www.aDomain.com。系统使用其默认邮件程序来完成任务。

您可以通过MAILTO在crontab文件中添加一条语句,将此输出转移到备用电子邮件地址。例如:

# 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 

使用外部电子邮件地址接收crontab日志时请务必小心。经常发送的邮件可能会被垃圾邮件过滤器捕获。然后,您将不得不为Yahoo,HotMail或Gmail等服务将邮件标记为“ 非垃圾邮件 ”。

另一种解决方案是将crontab命令的输出重定向到您选择的文件。在下面的示例中,stdoutand stderr输出发送到/tmp/aJob.log。此方法消除了发送电子邮件的可能性。

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

另一种选择是将stderr日志发送到电子邮件并将stdout日志发送到文件。在这种情况下,当您的crontab命令生成意外错误消息时,您会收到电子邮件警报。与上一个示例的区别在于,2>&1已删除了该示例,以允许stderr输出进入控制台并因此发送给电子邮件。

# 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

阅读更多crontab表crontab命令


1

由于此标签未标记为debian,并且也出现在fedora搜索中,因此以下是检查最近(基于系统的)fedora的方法:

sudo systemctl status crond

典型输出

 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)

all日志

journalctl --unit crond -n all
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.