当一天结束时午夜之后的工作时间的每小时 systemd 计时器?

当一天结束时午夜之后的工作时间的每小时 systemd 计时器?

我想从早上 9 点到晚上 1 点(当地时间午夜过后一小时)每小时运行一个 systemd 服务。

作为起点,我可以使用类似于以下的时间规范来从上午 9 点到晚上 11 点运行计时器:"*-*-* 09..23:00:00"

我可以用以下方法测试它:

systemd-analyze calendar "*-*-* 09..23:00:00"

根据输出,这似乎可以正常工作。

但是,当我尝试类似以下内容时,它不起作用:

systemd-analyze calendar "*-*-* 09..01:00:00"
Failed to parse calendar specification '*-*-* 08..01:00:00': Invalid argument

我已经尝试了以下多种变体,但尚未成功:

systemd-analyze calendar "*-*-* 00..01:00:00,09..23:00:00"

我想我已经很接近了,但我无法得到正确的符号。曾经提到过https://man.archlinux.org/man/systemd.time.7

答案1

正确的解决方案如下所示:

OnCalendar=*-*-* 00..01,09..23:00:00

您不能在表示法中混合小时和分钟,这就是此形式不起作用的原因:

"*-*-* 00..01:00:00,09..23:00:00"

在指定分钟之前需要定义每小时范围。在这种情况下,每小时范围是:

00..01,09..23

相关内容