#!/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" '