![如何确保我的 cronjob 将在指定时间运行?](https://linux22.com/image/25584/%E5%A6%82%E4%BD%95%E7%A1%AE%E4%BF%9D%E6%88%91%E7%9A%84%20cronjob%20%E5%B0%86%E5%9C%A8%E6%8C%87%E5%AE%9A%E6%97%B6%E9%97%B4%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我想知道如何检查我的 cronjob 是否会在我设置的指定时间运行。无论如何,我可以测试这个而不必等待那个时间吗?
这是我的 crontab -l 结果:
root@work:~$ crontab -l
3 */23 * * * /opt/lampp/bin/php /opt/lampp/htdocs/site/cron/my_script.php > /dev/null
如果我的值正确,我的 cronjob 是否会在每晚 11 点整运行并将所有输出记录到 /dev/null 以保持清洁?
谢谢。
答案1
唯一确定的方法是让它运行并检查结果。您可以修改命令以将输出记录在某处并进行检查,或者让它通过电子邮件将输出发送给您。
您可以添加另一条相同的行,该行会在 5 分钟左右运行该命令,以进行调试。例如。如果现在是下午 3:13,我可能会添加此行以在 3 分钟后测试该命令:
# Run at 15:16
16 15 * * * /opt/lampp/bin/php /opt/lampp/htdocs/site/cron/my_script.php > /dev/null
顺便提一句。要每天晚上 11 点跑步,您可能需要这样;我还将 stderr 重定向到 stdout ( 2>&1
) 以确保所有输出都转到/dev/null
:
# At minute 0 of hour 23 on every day, every month, every day of the week:
0 23 * * * /opt/lampp/bin/php /opt/lampp/htdocs/site/cron/my_script.php > /dev/null 2>&1
答案2
作为其他好答案的补充,您可以使用在线测试页面来健全性检查 cron 设置:
- 这会告诉您配置何时运行:http://cron.schlitt.info/
- 这个可以帮助你编写一个 crontab:http://cron.nmonitoring.com/cron-generator.html
答案3
我想最简单的选择是提前设置 cron 作业,比如从现在开始 5 分钟,看看该作业是否有效。此外,将 cron 运行日志记录到一个有日期的文件中也是一种很好的形式。这样你就可以看到#1它确实运行了,#2它运行正确。
确保您的系统时间也正确。