systemdタイマーのスケジューリング


Linuxでタイマーを設定する際はcrontabが手軽で好きだったのだけど、systemdでやる必要が生じた。systemd?誰それ……。
やれやれ、僕は検索した。

systemd/タイマー

実行内容を.service形式ファイルに記述して登録し、.timer形式ファイルで実行方式をコントロールするもののようだ。
機能を網羅的に調べることは時間の都合上できなかったが、とりあえず肝心の実行間隔についてメモしておく。
.timerファイルには[Timer]セクションがあり、OnCalendarプロパティで実行タイミングを設定できる。

毎日午後10時

OnCalendar=*-*-* 22:00:00

毎週金曜午前0時

OnCalendar=Fri *-*-* 00:00:00

毎月第一月曜午前1時

OnCalendar=Mon *-*-1,2,3,4,5,6,7 01:00:00

5分間隔

OnCalendar=*:0/5

設定値は色々あって最初は取っつきにくいものの、実行ユーザやグループ、前処理とか止め方みたいな細かい制御も色々できそうなので、こなれてくると非常に強力な使い方もできそうだなあという感想。
いやそんなバッキバキに制御するような構成は別に望んではいないのですが。