如何在精准的时间开始工作?

如何在精准的时间开始工作?

我想在精确的时间开始录制作业。据我了解,cron 只能保证在一分钟内开始一项作业。

一种可能的解决方案是提前启动 cron 作业,然后等到精确的时间。我还有什么其他选择吗?

答案1

最简单的方法是将 cron 作业提前一分钟启动,然后自行添加时间。

您也可以使用at。至少的手册页at说您可以使用相当精确的时间,包括秒。您可以通过添加at记录时间的作业来测试这一点,例如运行 shell 脚本。

date > ~/at_test

如果您采用 cron 路线,date +%s它就是您的朋友。

例如

#!/bin/bash
target_time=1298301898
let wait_time=target_time-`date +%s`
if [ $wait_time -gt 0 ]; then
 sleep wait_time
fi
# Execute your code

使用这种方法,你的下一个问题是弄清楚如何确定 target_time。如果你总是知道你想在下一分钟启动它,你可以使用

sleep 2 # Avoid running on xx:59, if cron starts immediately.
let wait_time=60-`date +%M`
sleep wait_time

等待细微的变化。

相关内容