{{tag>systemd linux}} # systemd の timer を作成する たまにしかやらないから忘れるシリーズ。 ## .service の作成 まず timer で起動される .service ファイルを /etc/systemd/system 下に作る。 ``` [Unit] Description=Rotate logs [Service] Type=oneshot ExecStart=/usr/bin/logrotate /etc/logrotate.conf ``` ## .timer の作成 同じく /etc/systemd/system 下に .timer ファイルを作成する。 ``` [Unit] Description=Daily logrotate schedule [Timer] OnCalendar=*-*-* 03:00:00 Unit=logrotate.service [Install] WantedBy=timers.target ``` ## 有効化と起動 ``` # systemctl enable logrotate.timer # systemctl start logrotate.timer ``` 確認は `systemctl list-timers` で。 ``` # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2017-05-13 03:00:00 JST 4h 9min left Fri 2017-05-12 03:00:30 JST 19h ago logrotate.timer logrotate.service ``` `start` していない timer も全てリストするなら `--all` を付ける。 ``` # systemctl list-timers --all NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2017-05-13 03:00:00 JST 4h 9min left Fri 2017-05-12 03:00:30 JST 19h ago logrotate.timer logrotate.service ```