如何安排 cron 任务运行

如何安排 cron 任务运行

我希望从周五下午 5 点开始每小时执行一次 crontab 脚本...到周一凌晨 5 点结束。

该脚本检查本周是否已完成以及当前是否正在运行。如果否/否,则开始任务。

从我的头脑中,我知道我可以这样做:

#Mins  Hours  DoMonth Months  DoWeek
0      5-17   *       *       0,6     /bin/echo "Run Script Sat and Sun Days"
0      17-24  *       *       0,5,6   /bin/echo "Run Script Fri, Sat, Sun Nights"
0      0-5    *       *       6,0,1   /bin/echo "Run Script Sat, Sun, Mon Mornings"

我能想到的所有方式都涉及三个部分(周五晚上、周六/周日全天、周一早上)。

有没有更有效的方法来做到这一点?任何类型的单/双线可以在该时间范围内每小时执行一次此操作?

或者在这个时间范围内对脚本进行简单的检查(如果不在那个时间范围内则退出)会更容易吗?

答案1

如果您只想检查脚本当前是否正在运行,如果没有,则每小时运行一次,您可以执行以下操作:

pgrep -x script-name.sh || script-name.sh

但是除非您为脚本使用了唯一的名称,否则您不会想要这样做 - 不要将其与“echo”一起使用,如上面的示例所示。

相关内容