systemd 计时器每 1 小时 X 分钟一次?

systemd 计时器每 1 小时 X 分钟一次?

我正在寻找一个每 1 小时 18 分钟运行一次的 systemd 计时器,但我只有这个线索。

systemd-analyze --iterations=3 calendar *:0/18每 18 分钟一班。

答案1

对于定期运行的单调计时器(例如,每 X 分钟和 Y 秒、每 X 天和 Y 分钟等),您必须定义起始点和重复值。这可以通过在该部分中使用两个指令来完成[Timer]
这些设置及其起点在中进行了解释sytemd.timer手册页也提到了这一点

多个指令可以由相同和不同类型组合而成,在这种情况下,只要任何指定的计时器表达式过去,计时器单元就会触发。例如,通过组合 OnBootSec=OnUnitActiveSec=,可以定义一个定期运行的计时器,并每次激活特定的服务。

因此,对于每 1 小时 18 分钟运行一次的计时器,您可以使用类似以下内容的代码:

[Timer]
Unit=test.service
AccuracySec=1s
OnActiveSec=5s
OnUnitActiveSec=1h 18min

上式中,初始触发是

OnActiveSec= 定义相对于定时器单元本身被激活的时刻的定时器。

重复是通过

OnUnitActiveSec= 定义相对于计时器单元正在激活的单元上次激活时间的计时器。


请注意,对于作为参数提供的时间跨度,您可以使用中描述的任何时间单位systemd.time手册页这意味着

OnUnitActiveSec=1h 18min

是相同的

OnUnitActiveSec=78m

或者

OnUnitActiveSec=4680

相关内容