systemdをcron代わりに使う

以前にも「Logwatchをsystemd timerで日次処理する」でsystemsをcron代わりに使ったのですが、ちゃんと理解しないまま、動けばいいや的に終わらせてしまったので、もうちょっと調べて、LDAPの月次バックアップを設定することにしました。

実際のserviceとtimerを作成するにあたって、参考にしたのは、ここ。
Using systemd as a cron replacement
必要最低限のserviceとtimerのサンプルが記述されています。これを参考に、まずはldapdump.serviceファイルを作成します。

/etc/systemd/system/ldapdump.service

[Unit]
Description=LDAP dump

[Service]
Type=simple
ExecStart=/root/bin/ldap_dump.sh

ldap_dump.shは事前に作成しておいたLDAPをダンプするスクリプトです。内容としては

slapcat -l /path/to/backup.ldif

のようにslapcatを用いてダンプをとるスクリプトです。rootをownerにして、実行権限を与えておくのを忘れないようにしましょう。

続いて、monthlyldapdump.timerファイルを作成します。

/etc/systemd/system/monthlyldapdump.timer

[Unit]
Description=Run LDAP dump monthly

[Timer]
OnCalendar=*-*-01 02:00:00
Unit=ldapdump.service

[Install]
WantedBy=basic.target

OnCalendarの書式で月次の実行日時を指定します。この例では毎月1日の午前2時に実行するように指定しています。
書式については、上の参考ページにもリンクされているページを参考にしました。
Parsing Timestamps

後はmonthlyldapdump.timerを起動すればOKです。

systemctl enable monthlyldapdump.timer
systemctl start monthlyldapdump.timer

これまた参考ページに記載がありますが、serviceを起動しないように注意してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です