我在 CentOS 5 上设置了几个在特定时间执行的“at”作业。今天早上我没有在队列(“atq”)中看到这些命令,正如预期的那样,但我也没有看到我可以在哪里检查负责执行这些命令的守护进程是否按时执行了这些命令或出现了任何问题。不幸的是,我没有从脚本本身记录足够的信息。有什么想法吗?
答案1
通过查看“at”程序的源代码(来自 CentOS 5.3 源代码存储库),它看起来确实正在记录到系统日志,但只记录与 at 守护进程本身有关的致命错误(例如,如果您尝试同时运行 2 个 at 守护进程)。
但是,进程执行、产生的返回代码和标准错误/输出根本不会记录到 syslog 中。即使打开调试(需要重新编译),日志消息也不是很有帮助(对于最终用户而言),并且会写出类似以下内容的内容:
atd[24116]: pid 24121 以状态 0 退出。
这对您识别哪个命令是由哪个用户运行的或者它的标准输出/错误是什么没有太大帮助。
如果命令失败或在其标准输出/错误中产生任何内容,atd 会向请求该命令的用户发送电子邮件通知。但对于成功但没有任何输出的命令,不会发送任何邮件。您可以使用 -m 标志更改这一点。
来自(1):
-m Send mail to the user when the job has completed even if there was no output.
借用 Tom Feiner 的回答相同的问题。