カレンダーに複数の瞬間を持つタイマー

カレンダーに複数の瞬間を持つタイマー

バックアップジョブを自動的にトリガーするためにシステムタイマーとデバイスを使用しています。しかし、現在は夜の特定の時間にのみ実行されます。同じタイマーで宣言して複数の瞬間に実行できるようにすることはできますか?

これで、次のようになります。

[Unit]
Description=Run luky-borg-backup every night

[Timer]
OnCalendar=21:00
AccuracySec=1h
Persistent=yes

[Install]
WantedBy=timers.target

次のようにする必要があります。

[Unit]
Description=Run luky-borg-backup every night

[Timer]
OnCalendar=10:00,21:00
AccuracySec=1h
Persistent=yes

[Install]
WantedBy=timers.target

答え1

同じタイマーで宣言して複数の瞬間に実行できるようにすることはできますか?

はい。

バラよりこの抜粋man systemd.timer(私のハイライト)から:

カレンダーに=

    カレンダーイベント式を使用して、リアルタイム(たとえばウォールクロック)タイマーを定義します。カレンダーイベント式の構文の詳細については、systemd.time(7)を参照してください。それ以外の場合、セマンティクスはOnActiveSec =および関連設定に似ています。

    タイマーは以下のAccuracySec =設定の影響を受けるため、この設定で設定された正確な時間に必ず期限切れになるわけではありません。

    複数回指定可能

私が使用する実際の例は次のとおりです。

[Timer]
OnCalendar=Mon-Sun *-*-* 23:00:00
OnCalendar=Mon-Sun *-*-* 06:00:00

答え2

この記事は少し古いですが、同じタイマーでこれを宣言する方法がいくつかあることを指摘したかったです。

各コンポーネントは、カンマ区切り値のリストとして指定できます。

あなたの場合、コンポーネントは1つだけ変更されるため、このソリューションをお勧めします。同じコンポーネント間にカンマを配置する必要があることは既に知っています。

OnCalendar=10,21:00

複数回指定できます。この場合、指定された式が経過するたびにタイマーデバイスが実行されます。

複数のコンポーネントが変更された場合は、2番目のソリューションをお勧めします。

OnCalendar=Mon..Wen 10:00  
OnCalendar=Thu..Fri 21:00

関連情報