2019-09-30 (Mo) [長年日記]
_ zfsnap を設定した
zfs の snapshot。
↑BSD系にはこんなツールがあるらしい。
archlinux にもあるかな、と思ったら、AUR にあったので設定してみた。
yay -S zfsnap
設定例は特に含まれてなかったので、適当に systemd の timer を使って設定した。
/etc/systemd/system/zfsnap@.service
:
[Unit]
Description=ZFS Snapshot
[Service]
Type=oneshot
ExecStart=/usr/bin/zfsnap snapshot -a %i zroot/opt zroot/home zroot/usr zroot/root
/etc/systemd/system/zfsnap-daily.timer
:
[Unit]
Description=ZFS Daily Snapshot
[Timer]
OnCalendar=daily
Persistent=true
Unit=zfsnap@3d.service
[Install]
WantedBy=timers.target
/etc/systemd/system/zfsnap-weekly.timer
:
[Unit]
Description=ZFS Weekly Snapshot
[Timer]
OnCalendar=weekly
Persistent=true
Unit=zfsnap@2w.service
[Install]
WantedBy=timers.target
/etc/systemd/system/zfsnap-monthly.timer
:
[Unit]
Description=ZFS Monthly Snapshot
[Timer]
OnCalendar=monthly
Persistent=true
Unit=zfsnap@2m.service
[Install]
WantedBy=timers.target
と適当に unit file を作って、
sudo systemctl enable zfsnap-daily.timer
sudo systemctl start zfsnap-daily.timer
sudo systemctl enable zfsnap-weekly.timer
sudo systemctl start zfsnap-weekly.timer
sudo systemctl enable zfsnap-monthly.timer
sudo systemctl start zfsnap-monthly.timer
こんなもんだったかな。
sudo systemctl list-timers --all
で timer の確認。
これでひとまず様子見。たぶん、この中には古い snapshot の削除は含まれてない。
ちなみに構造としては、/usr/bin/zfsnap
が subcommand を見て
/usr/share/zfsnap/commands/
から同名の script を読み込んで、
処理はそっちに任せる感じ。
destroy.sh
ってのがあるので、古い snapshot の削除はこれでやるのだろうと思ってる。
あー、hourly も対応してるな。3時間分くらい取っておこうか。
[Unit]
Description=ZFS Hourly Snapshot
[Timer]
OnCalendar=hourly
Persistent=true
Unit=zfsnap@3h.service
[Install]
WantedBy=timers.target
よし削除も設定した。
/etc/systemd/system/zfsnap-remove.service
:
[Unit]
Description=ZFS Snapshot Removal
[Service]
Type=oneshot
ExecStart=/usr/bin/zfsnap destroy zroot/opt zroot/home zroot/usr zroot/root
/etc/systemd/system/zfsnap-remove.timer
:
[Unit]
Description=Periodical ZFS Snapshot Removal
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
同様に enable と start。
[ツッコミを入れる]