最简单的方法是将 cron 作业提前一分钟启动,然后自己添加时间。
您也可以使用at. 至少手册页at说你可以使用相当精确的时间,包括秒。您可以通过添加at记录时间的作业来测试这一点,例如运行 shell 脚本
date > ~/at_test
Run Code Online (Sandbox Code Playgroud)
如果您使用 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
Run Code Online (Sandbox Code Playgroud)
使用这种方法,您的下一个问题是弄清楚如何确定 target_time。如果您始终知道要在下一分钟启动它,则可以使用
sleep 2 # Avoid running on xx:59, if cron starts immediately.
let wait_time=60-`date +%M`
sleep wait_time
Run Code Online (Sandbox Code Playgroud)
等到分钟的变化。