LoginSignup
1
0

More than 3 years have passed since last update.

Daily&Weekly Backup via systemd

Posted at

Overview

マシンを変えたのでcronで行っていたdaily/weeklyのbackupをsystemdで行うようにしたのでメモのため記事にしておこうと考えた。

Environment

  • Ubuntu18.04 (というかsysmtedであれば動くはず)

Procedure

Dump Scriptの準備

/usr/local/binに以下を配置。(systemd serviceファイルにコマンド直書きでもいいが、あとでやりたいことが増えた場合にscriptのほうが良さそうなので、backendはscriptにしておく)

/usr/local/bin/backup-daily.sh

#!/bin/bash

echo "Dumping backup in daily, /dev/nvme0n1p2 will be in /mnt/data1/dump-nvme0n1p2.daily"

dump -0uf /mnt/data1/dump-nvme0n1p2.daily /dev/nvme0n1p2

/usr/local/bin/backup-weekly.sh

#!/bin/bash

echo "Dumping backup in weekly, /dev/nvme0n1p2 will be in /mnt/data1/dump-nvme0n1p2.weekly"

dump -0uf /mnt/data1/dump-nvme0n1p2.weekly /dev/nvme0n1p2

※(もちろんだが、)dumpの保存先のマウントポイントは必要に応じて準備しておくこと。

systemd serviceとtimer

serviceとtimerファイルを以下のように準備

>ls -lt  /etc/systemd/system/backup-*
-rw-r--r-- 1 root root 133 Mar 13 12:20 /etc/systemd/system/backup-weekly.service
-rw-r--r-- 1 root root 122 Mar 13 12:20 /etc/systemd/system/backup-weekly.timer
-rw-r--r-- 1 root root 148 Mar 13 12:20 /etc/systemd/system/backup-daily.timer
-rw-r--r-- 1 root root 131 Mar 13 11:51 /etc/systemd/system/backup-daily.service

それぞれの中身は以下。

/etc/systemd/system/backup-weekly.service

[Unit]
Description=Weekly backup activities
ConditionACPower=true

[Service]
ExecStart=/usr/local/bin/backup-weekly.sh
Type=oneshot

/etc/systemd/system/backup-weekly.timer

[Unit]
Description=Weekly backup activities

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

※weekly=Mon --* 00:00:00

/etc/systemd/system/backup-daily.service

[Unit]
Description=Daily backup activities
ConditionACPower=true

[Service]
ExecStart=/usr/local/bin/backup-daily.sh
Type=oneshot

/etc/systemd/system/backup-daily.timer

[Unit]
Description=Daily backup activities

[Timer]
OnCalendar=*-*-* 02:00
RandomizedDelaySec=1h
Persistent=true

[Install]
WantedBy=timers.target
systemd-timerをenable
sudo systemctl enable backup-daily.timer
sudo systemctl enable backup-weekly.timer
補足

ログを見たいときは、

systemctl status backup-daily.timer
systemctl status backup-daily.service

systemctl status backup-weekly.timer
systemctl status backup-weekly.service
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0