我试图在一天中的特定时间运行一些特定的作业,以在增量期间捕获数据库上的特定数据,目前我有大量运行得很好的作业,但这些作业似乎没有在指定的时间运行,而且我经常必须自己运行它们。
目前这些是预定时间。
我假设每天上午 9 点。正如我到处检查过的那样,它的语法似乎是正确的。
0 9 * * * bash /home/user/Desktop/CRON/OAK3/dw_3704255.sh
我认为每天下午 1:30。正如我到处检查过的那样,它的语法似乎是正确的。
30 13 * * * bash /home/user/Desktop/CRON/OAK3/dw_3704278.sh
我认为每天下午 6 点。正如我到处检查过的那样,它的语法似乎是正确的。
0 18 * * * bash /home/user/Desktop/CRON/OAK3/dw_3704286.sh
我认为每天晚上 10 点。正如我到处检查过的那样,它的语法似乎是正确的。
0 22 * * * bash /home/user/Desktop/CRON/OAK3/dw_3704294.sh
现在,我尝试将前面的零更改为 00,但出现了相同的结果。我最近改成了单零,但我相信这就是我最初的样子。
我可能只需要从外部角度进行健全性检查,因为它看起来是正确的,但任何见解都会受到赞赏。谢谢!
最佳答案
我假设作业将开始运行,但由于某种原因不会完成,使得它们看起来根本没有开始。这通常是由 .profile 中设置的环境变量引起的 - cron 作业不会执行 .profile 并且无法访问这些变量。
我会发表这样的声明
exec > /tmp/dw_3704255.log 2>&1
set -x
在dw_3704255.sh
脚本的开头;然后您可以检查文件是否在应有的时间出现,并检查其内容是否有踪迹。
此外,我会将 bash
替换为 /bin/bash
以防止 cron 进程中出现奇怪的 PATH 设置,但我不认为这是导致您当前问题的原因。
关于linux - CRON 作业未在指定时间运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22258595/