如何检查 crontab 作业是否正常工作

如何检查 crontab 作业是否正常工作

所以我制作了一个基本的 .sh 文件来使用以下命令清除缓存

sync; echo < 3 /proc/sys/vm/drop_caches

命令。然后我将其保存到我的用户名中

/home/marc 

然后我遇到了 crontab,所以我决定使用这个 sh 文件和 crontab 每小时运行一次,因为我注意到我的笔记本电脑上的 RAM 消耗得非常快。使用 crontab -e,我将文件编辑为:

0 * * * * /root/clearcache.sh 

我的问题是,我做的一切都正确吗?我是否正确编辑了 crontab 文件,如果是,如何检查该作业是否按预期运行?

答案1

检查 cronjob 是否按您期望的方式工作(缺少阅读手册页)将添加一个简单的 cronjob,将日期报告到特定文件:

0 * * * * date >> /tmp/cronjob.test

然后在第二天(或任何时候)检查它并确保它在您期望的时间触发。

我个人建议阅读手册页——它更快——但上面的方法是更长、更懒的方法。 ;)

答案2

所以看起来 cron 没有任何日志记录或调试选项。

要检查您的短脚本是否按预期运行,您可以strace -f -p $(pgrep cron)在终端窗口中观看。提前运行strace -f my-basic.sh,这样你就知道它是什么应该看起来像。

如果 cron 脚本生成任何输出,则应将其邮寄给您的用户。当您打开终端时,它会告诉您有邮件,并且该mail命令会将其显示给您......恐怕该命令可能是另一个“学习机会”:)。

您可以预期任何错误都会导致您的脚本生成输出,从而生成邮件。这就是 Unix 约定。 “没有消息就是好消息”。

相关内容