systemd timer で定期実行を設計する
Pro会員限定上級約40分6レッスン
list-timers で「いつ何が動くか」を棚卸しし、systemd-analyze calendar で実行時刻を検算してから timer ユニットを書きます。ログが journal に残り、止まっていた間の分も取り戻せる定期実行へ、cron から移行する手順を身につけます。
対象者: cron のジョブが「動いたのかどうか分からない」と困ったことがある方 / バッチ処理の運用を任された方
前提知識: systemd ユニットファイルを自作する 修了程度
この教材を終えると、できるようになること
- systemctl list-timers の各列を読み、timer と、それが起動する service の対応を説明できるようになる。
- OnCalendar の書式を読み書きし、systemd-analyze calendar で正規化された形と次回の実行日時を確認できるようになる。
- db-backup.timer を書き、systemd-analyze verify で誤りが無いことを確認できるようになる。
- daemon-reload → enable --now の順で timer を有効化し、list-timers で次回実行日時を確認できるようになる。
- service を手動で起動して oneshot の状態の見え方を理解し、journalctl -u で実行結果を確認できるようになる。cron から timer へ移行する判断材料を説明できるようになる。
修了後の姿: 障害の根本原因をログとコマンドで突き止められる、チームに頼られる運用エンジニアへ。
Chapter 1定期実行を systemd に任せる
夜間バックアップを timer 化し、次回実行・手動実行・ログまで確かめる。
- 動いている定期実行を棚卸しする(list-timers)「次はいつ動くか」「前回はいつ動いたか」を一覧で見る約6分(有料会員限定)
- 実行時刻を検算する(systemd-analyze calendar)書いた時刻指定が「本当にいつ動くか」を先に確かめる約7分(有料会員限定)
- timer ユニットを書いて検証するOnCalendar・Persistent・WantedBy の3点を押さえる約8分(有料会員限定)
- enable --now で動かし、次回実行を確かめる書いただけの timer は動かない約7分(有料会員限定)
- 手動で1回動かして、ログで確かめる初回の夜を待たずに、今すぐ動作確認する約7分(有料会員限定)
Chapter 2確認クイズ
systemd timer の設計と cron との違いの理解度をチェック。