每天在机器开启时执行一次 cronjob,但不一定在特定时间执行

每天在机器开启时执行一次 cronjob,但不一定在特定时间执行

我想在一台不是一直运行但每天至少运行一次的机器上每天运行一次 cronjob。cronjob 的问题在于,我必须给它一个准确的时间,即它应该运行的时间,但我的机器可能在这个特定的时间没有运行。我知道 cron 有一个选项说“启动时执行此操作”,但我的机器通常不会重新启动,而是让它处于待机状态。换句话说,我想每天执行一次某件事,但我不能给出准确的时间。有解决方案吗?

答案1

你想要类似的东西阿纳克隆

anacron 是一个计算机程序,它执行定期命令调度,这通常由 cron 完成,但不假设系统持续运行。因此,它可以用于控制每天、每周和每月作业(或任何周期为 n 天的作业)在非 24 小时运行的系统上的执行。

在大多数 Linux 发行版中都以软件包形式提供。可能还提供了适用于 MS Windows 的端口...

答案2

您可以从 /etc/rc2.d 中的启动脚本调用该作业,该脚本将今天的日期与文件中保存的日期进行比较,然后更新该文件。

相关内容