![根据时间变化运行作业](https://linux22.com/image/98476/%E6%A0%B9%E6%8D%AE%E6%97%B6%E9%97%B4%E5%8F%98%E5%8C%96%E8%BF%90%E8%A1%8C%E4%BD%9C%E4%B8%9A.png)
我有一个每天凌晨 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
以获取更多信息和用法。