我正在使用 RHEL 7.9。在我的 crontab 中,我有以下变量和命令:
MAILTO=""
SHELL="/usr/bion/ksh"
30 * * * * find /home/me/data/input -name "*.completed" -size +10M -print >> /home/me/jobs/completed.big 2>/home/me/jobs/completed.big.errors
由于每个人都检测到了 SHELL var 中的额外内容o
,因此您(和我)可以看出所有作业都在默默地失败。
该/var/log/cron
文件充满了所有预期运行的命令行。
该journalctl -xe -t crond
命令仅提到重新加载我的个人 cron 并跳过作业:
Jan 30 01:21:05 servername crond[26104]: (root) INFO (Job execution of per-minute job scheduled for 01:20 delayed into subsequent minute 01:21. Skipping job run.)
[...]
Feb 05 16:02:01 servername crond[3997]: (me) RELOAD (/var/spool/cron/me)
看到我的作业没有日志,我删除了 MAILTO 变量,然后我帐户的本地邮箱收到如下消息:
[... Stripping mail headers]
execl: couldn't exec `/usr/bion/ksh'
execl: No such file or directory
由于此错误在命令实际启动之前出现,因此我没有在作业日志中看到它。
有没有什么办法可以让这些错误或者至少在日志中捕获 CRON 无法启动命令的错误?我们这里有足够的邮件,并且日志已经受到监控。
我已阅读cron 错误记录在哪里?问题,但我想得到一个明确的答案“能克朗德在邮件之外的其他地方发现错误吗?“。这可能是 crond 的隐藏配置,或者其他什么,我不知道。
最后,我什至可能会考虑欺骗邮箱重定向到日志,然后清理它。