我在网上读了几篇帖子,去查找他们提到的文件,但没有找到。我在 Ubuntu 11 中,试图排除未运行的 cron 作业的故障,尽管我已将其设置为每 3 分钟运行一次。cron 作业中的命令运行时没有错误。
cron 在哪里存储了运行了哪些作业以及何时运行的历史记录?如何确保它已启用?
答案1
Cron 将执行脚本的输出放入电子邮件(使用命令mail
读取它们)或将其转到系统日志。
cron 作业通常不会运行,因为有大量的假设。假设当你(你作为用户)运行某项任务时,它会正确运行,这是犯错的好方法。
典型的错误是缺少权限或路径无效。您应该测试您的脚本:
- 您是否可以作为 cron 作业的用户启动它没有环境变量
- 如果你可以在文件系统的任何位置启动它(你应该使用完整路径,而不是相对路径)
测试用户权限时不要使用su - <user>
,su <user>
因为前者将从 .bashrc 初始化环境,而 cron 运行时默认情况下您将不会拥有该环境。
答案2
cron.debug /var/log/cron
我很确定标准 cron 不会保留日志。显然,您可以通过添加条目然后/etc/syslog.conf
发送syslogd
HUP 信号来使其记录。
通常,失败的任务会导致向相关用户发送电子邮件。
cron 作业失败的一个常见原因是程序依赖于在交互式登录期间设置但不是由 cron 设置的环境变量或路径。