在Ubuntu 14.04上,cron日志存储在哪里?

我正在尝试解决为什么我的定时任务有时候不起作用的问题。cron 默认将日志文件存储在哪里?是 /var/log/syslog 吗?
我查看了那个文件,但是它是空的。我需要设置一些东西吗?
5个回答

默认情况下,cron的日志保存在/var/log/syslog中。 这取决于rsyslogd的配置。您可以进行更改:
进入rsyslog配置文件

cd /etc/rsyslog.d/
sudo nano 50-default.conf

取消注释以下行:

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

保存文件并重新启动rsyslog

sudo service rsyslog restart 

重新启动cron守护程序以从新文件获取其消息

sudo service cron restart

当不工作时,它会向用户发送一封邮件。唯一的问题是:你没有软件来发送/存储邮件在邮箱中。
但是不要担心,来了!
安装Postfix
sudo apt-get update sudo apt-get install postfix heirloom-mailx
安装时,它会询问你如何设置它。在第一个屏幕上,选择并按照其他所有默认设置进行操作。
配置Postfix
现在,使用你喜欢的编辑器编辑< /etc/aliases >。开头的内容应该是这样的:
# See man 5 aliases for format postmaster: root
这意味着任何发送给的邮件现在也会发送给。在这种情况下,我们希望将发送给的任何邮件(用于cron邮件和其他系统邮件)发送给(我们自己)。

所以,编辑/etc/aliases文件如下:

# 查看man 5 aliases了解格式
postmaster:    root
root:          norman

(将norman替换为你的用户名。除非你和我有相同的名字/用户名。 :) )

完成以上步骤后,运行以下命令来push更改:

sudo newaliases

现在,在运行以下命令:

sudo dpkg-reconfigure postfix

你会看到安装postfix时的相同界面。按照默认设置进行操作(例如选择“本地使用”等)。当询问根用户和邮件管理员别名时,确保与上述添加到/etc/aliases中的别名相同。然后,继续按照默认设置进行操作。

完成后,运行以下命令重新启动postfix并开始使用!

sudo service postfix restart

结论

现在,如果cron出现错误,它将会通过邮件发送给您。但是,您可能会想知道,我该如何检查我的(本地)邮件?
为此,请运行以下命令:
邮件
就这么简单。如果没有邮件,它将会说“ No mail for <username> ”。否则,您将会得到一个整洁的终端界面来使用。有关如何与收件箱交互的信息,请参见 man page
或者,如果您愿意,您可以使用以下方式访问您的本地手册页:
man邮件
现在,您已经完成了! :)
P.S. 您应该阅读this以了解有关问题的更多信息。

1crond 会向工作的所有者发送电子邮件,不一定是 root 用户,因此如果您使用 crontab -e 安装的是自己的工作,则会收到该邮件。无论作业是否“失败”,这也是正确的...它只是向您发送作业产生的任何输出的抄本。 - psusi

当运行mail时,我得到了以下的回应:
The program 'mail' is currently not installed. To run 'mail' please ask your administrator to install the package 'mailutils'

相反,我发现错误/邮件存储在/var/mail/root


#检查所有作业运行时间线

cat /var/log/syslog | grep CRON

#查看每个作业的完整日志

cd /var/mail/

ll
-rw-rw----  1 ubuntu mail 9342 Dec 31 07:35 ubuntu

less ubuntu

#在上面的文件中,你可以找到整个日志

只需按下 shift + g,你就可以看到所有新的日志文本

#检查实时文件/日志更新

tail -f /var/mail/ubuntu

默认情况下,它位于/var/log/syslog

但是可以设置为创建一个单独的cron.log,这样更有用。

这个问答描述了这个过程:

16.04:如何让cron创建cron.log并实时监控?

此外,在这个答案中还有创建一个wcron命令的说明,它显示的是准实时的。此外,它链接到另一个答案,

如何更改cron日志级别?

该答案显示如何更改日志级别以包括不仅仅是作业的开始-级别15将显示错误和结束时间。