从datetime.now开始经过15分钟

时间:2019-02-04 08:27:21

标签: linux datetime linux-kernel

我每15分钟接收一次卫星数据。 我在叫剧本 日期-d“ -15分钟” * / 15 * * * * myscript.sh 但是,有时卫星可能会延迟3-10分钟。 在这种情况下,我(myscript.sh)无法捕获该文件。

那么,任何解决方案都可以使用date选项或任何其他选择过去15分钟的倍数的方法?

1 个答案:

答案 0 :(得分:0)

如果您需要每15分钟运行一次脚本

您可以获取日期为“ +%s”的当前unix时间戳,并通过一些简单的数学运算(当前示例为bash)找到当前的四分之一小时,并使用日期更好的格式将其打印回来:

curdate=`date "+%s"`
curquarter=$(($curdate - ($curdate % (15 * 60))))
date -d"@$curquarter"

从时间戳设置当前日期和时间的@语法是迄今为止的GNU扩展,如果它在您的OS上不起作用,则可以这样做(不要忘记指定UTC,否则) ,它将无法正常工作):

date -d"1970-01-01 $curquarter seconds UTC"