在特定时间运行脚本而不使用 cron

在特定时间运行脚本而不使用 cron

#!/bin/sh我正在尝试在精确时间(hh:mm:ss) hh:05:00 .. hh:10:00 .. hh:15:00 .. hh:20 中(在 HP-UX 中)运行 shell 脚本:00 .. hh:25:00 等等。我知道这可以使用来完成cron,但我正在寻找另一种方法来做到这一点。

添加:不支持观看/重复

答案1

你可以这样做:

sleep $(($(date --date="14-JAN-2015 17:00" +%s) - $(date +%s)))
run command ...

14-JAN-2015 17:00您要等待的日期和时间在哪里。

要每五分钟运行一次,您可以考虑返回的秒数date将是 5 分钟边界上 300 的倍数,因此这将计算现在与下一个五分钟边界之间的差异(返回 0 到 299 之间):

timeNow=$(date +%s)
sleepTime=$(( ( ( $timeNow + 299) / 300 * 300 ) - $timeNow ))
sleep $sleepTime

如果date +%s不可用,请尝试:

timeNow=$(awk 'END { print systime() }' /dev/null)

添加:还与:

perl -e 'print time(), "\n" '

相关内容