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その値に繰り返し値のすべての倍数(00、、、02.. 、04..など)を加えた値と一致します。 -値は30分から毎時間一致します。1416
30mm30

それ以来、同じページに日付と秒がありませんman

日付指定は省略できます。この場合、現在の日付は暗黙的になります。 [...] [...] 2番目の部分を指定しない場合は「: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

関連情報