根据时间变化运行作业

根据时间变化运行作业

我有一个每天凌晨 1 点运行的 cron 作业,它在 /tmp 中创建两个文件,名为firstrun和endrun,每个文件都包含脚本应该运行的时间。早上一次,晚上一次。这些文件只有一行,如下所示:

0803

上午 8:03。

第1754章

下午 5:54

我需要一个在 cron 中运行的脚本来检查这两个文件,如果当前时间大于每个文件中看到的时间加上 5 分钟,它将启动另一个脚本并退出。最棒的是它每天只需要运行两次。我认为一旦满足要求,它就可以删除该文件,如果该文件不存在则退出。当然,在凌晨 1 点,第一个 cron 作业会将文件放回到 /tmp 中。

这个想法是每个作业每天只运行一次。不是一遍又一遍,每天。文件中的时间每天都在变化。另外,我应该说,在第一个文件上触发的脚本与在第二个文件上触发的脚本不同。

是否有一个简单的检查、触发、删除、退出脚本可以放入 cron 中并每 5 分钟运行一次?或者更简单的方法来做到这一点?我尝试了多种方法,但从未找到成功实现自动化的方法。

答案1

您可以尝试使用at来安排您的工作而不是cron

at安排一次性作业在未来的预定时间运行。 cron适用于调度以定期、预先确定的时间间隔运行的作业,但at更适合调度不规则和/或以不规则时间间隔运行的作业。

阅读man 1 at以获取更多信息和用法。

相关内容