![安装 Postfix](https://linux22.com/image/1126538/%E5%AE%89%E8%A3%85%20Postfix.png)
我正在尝试排除 cron 任务有时无法正常工作的原因。cron 默认将日志文件存储在哪里?是 /var/log/syslog 吗?
我查看了该文件,它是空的。我需要设置一些东西吗?
答案1
默认情况下,cron 的日志保存在 /var/log/syslog 中。这取决于 rsyslogd 配置。您可以更改它:
转到 rsyslog 配置
cd /etc/rsyslog.d/
sudo nano 50-默认.conf
取消注释行:
#cron.* /var/log/cron.log
保存文件并重新启动 rsyslog
sudo 服务 rsyslog 重启
重新启动 cron 守护程序以从新文件中获取其消息
sudo 服务 cron 重启
答案2
cron
不起作用时,它会向用户发送邮件root
。唯一的问题是:您没有用于发送/将邮件存储在邮箱中的软件。
但不要害怕,Postfix
就在这里!
安装 Postfix
sudo apt-get 更新 sudo apt-get 安装 postfix heirloom-mailx
安装时postfix
,它会询问您如何设置。在第一个屏幕上,选择local only
并继续使用其他所有内容的默认设置。
配置 Postfix
现在,使用你最喜欢的编辑器编辑/etc/aliases
。一开始它看起来像这样:
# 请参阅 man 5 别名以了解格式 邮政局长:root
这意味着,任何发送到的邮件现在也postnaster
将发送到。在这种情况下,我们希望任何发送到的邮件(对于 cron 邮件和任何其他系统邮件)都发送给(我们)。root
root
username
因此,编辑/etc/aliases
如下:
# 请参阅 man 5 别名以了解格式 邮政局长:root 词根:norman
(norman
显然要用你的用户名替换。除非你的名字/用户名与我相同。:))
完成所有操作后,运行以下命令来执行push
更改:
sudo newaliases
现在,运行之后:
sudo dpkg-重新配置 postfix
您将看到与之前安装时相同的屏幕postfix
。运行默认设置(Local Only
,等等)。当您到达要求输入 root 和 postmaster 别名的部分时,只需确保它与您在上面添加的相同/etc/aliases
。然后,继续运行默认设置。
完成后,运行以下命令重新启动postfix
并开始!
sudo 服务 postfix 重启
结论
现在,如果 cron 出现错误,它会通过邮件发送给您。但是,您可能想知道,我到底如何检查我的(本地)邮件?
为此,请运行以下命令:
邮件
就这么简单。如果没有邮件,它会显示No mail for <username>
。否则,您将获得一个简洁的终端界面。请参阅手册页了解如何与收件箱互动的信息。
或者,如果您愿意,您可以使用以下命令访问本地手册页:
男子邮件
现在,您已经完成了!:)
PS你应该读这了解有关该cron
问题的更多信息。
答案3
运行时mail
我收到以下响应:
The program 'mail' is currently not installed. To run 'mail' please ask your administrator to install the package 'mailutils'
相反,我发现错误/邮件存储在/var/mail/root
答案4
默认情况下处于/var/log/syslog
开启状态。
但可以设置为创建一个单独的cron.log,这更有用。
此问答描述了该过程:
16.04:如何让 cron 创建 cron.log 并实时监控它?
此答案中还提供了创建命令的说明wcron
,该命令显示它是近乎实时的。此外,它链接到另一个答案,
这显示了如何更改日志级别以包含不仅仅是作业的开始 - 级别 15 还将显示错误和结束时间。