systemd 计时器每 2 小时在整点 30 分钟计时一次?

systemd 计时器每 2 小时在整点 30 分钟计时一次?

关于计时器有一些很好的参考资料,systemd其中包括:

systemd.time

不幸的是,我仍然不清楚如何创建一个定期运行的计时器,但在整点后的特定分钟数运行。

我想创建一个每 2 小时运行一次 30 分钟的计时器。因此它将在 14:30(下午 2:30)、16:30、18:30、20:30 等运行。

我尝试了一些不起作用的方法,包括:

OnCalendar=*-*-* *00/2:30

和这个:

OnCalendar=*-*-* *:00/2:30

我没有找到产生所需结果的时间规范。

另外,它不必在那一刻运行,所以我正在考虑使用:

AccuracySec=5m

答案1

每 2 小时整点 30 分钟应

OnCalendar=00/2:30
#   iow    hh/r:mm

00/2-hh值为00,重复值为r2这意味着hh将匹配该值加上重复值的所有倍数(000204.. 1416.. 等)
30- 该mm30将匹配每小时过去 30 分钟

从那以后,我在同一页上遗漏了日期和秒数man

日期规范可以省略,在这种情况下,隐含当前日期[...][...]如果未指定第二个部分,则假定为“:00”。

答案2

为未来读者提供的解决方案:

    # systemd-analyze calendar --iterations=2 '0/2:30:00'            
      Original form: 0/2:30:00
    Normalized form: *-*-* 00/2:30:00
        Next elapse: Fri 2023-01-20 16:30:00 EET
           (in UTC): Fri 2023-01-20 14:30:00 UTC
           From now: 1h 22min left
           Iter. #2: Fri 2023-01-20 18:30:00 EET
           (in UTC): Fri 2023-01-20 16:30:00 UTC
           From now: 3h 22min left

相关内容