systemd timerはちゃんと動いてる?

systemdタイマーがちゃんと動いてるか確認したほうが良いよというお話
systemctl list-timers --allコマンドで一覧が見れるあれです

debian10だと /etc/cron.daily にあるスクリプトでこんな感じに書かれてたら、systemd timerの方を使ってる

if [ -d /run/systemd/system ]; then
    exit 0
fi

前回 と同様にノートパソコンのバッテリー稼働と誤って判断されることに起因する問題

例えばlogrotateとかみると

systemctl cat logrotate

こんな一文がある

ConditionACPower=true

これはバッテリー駆動の時は動かさないって意味らしいんだけど、どうも判定が狂ってるみたいでずっと実行されなかった

なので、以下のコマンドでoverride.conf作って判定を無効化した

systemctl edit logrotate
# 書いた内容
[Unit]
ConditionACPower=

というわけで
cronだけじゃなくて, systemd-timerもちゃんと見ておかないといけない

journalctl -n 10 -u logrotate | egrep -i "condition check.*skipped"

とりあえず分かった、バッテリー時の判定が入ってるtimer

  • apt-daily-upgrade
  • man-db
  • logrotate
  • anacron
  • apt-daily