每 X 小时运行时间运行一次任务(在所有开机过程中累积)的最有效方法是什么?

每 X 小时运行时间运行一次任务(在所有开机过程中累积)的最有效方法是什么?

假设我有一台机器,它在 7:00 醒来,做一些工作,通常持续 15 分钟,但有时持续几天(例如,实验监督),工作完成后,它会自行关闭。

我想每运行 10 小时运行一个特定的分析工具。如果机器每天只花费 15 分钟,则可能每 40 天运行一次,但如果机器有大量工作要做,则可能需要每天运行两次。

我将如何实现这一目标?

我立即想到的是通过 bash 循环将“正常运行时间”转储到日志文件中,并每分钟读取一次,以总结自上次分析工具运行以来的正常运行时间。当所需的时间到来时,禁止关闭(我该怎么做?),进行分析,然后手动关闭。

这可行,但 (1) I/O 非常密集,(2) 黑客行为,(3) 如果分析本身需要超过 10 个小时(这种情况可能会发生),就会失败。

有没有更好的办法?

相关内容