zfsnap2(以降、zfsnap)をperiodicで自動取得する方法はこちらで触れた。
同期時でも触れた通り、zfsnapには自動削除するperiodic scriptもある。
が、実はそのままでは動かない。
変更内容を本記事で示す。

結論

付属のスクリプトではdestroyするfsの指定がないので補う。
具体的には以下の個所。

<         xPREFIXx/zfsnap destroy $OPTIONS -p "hourly- daily- weekly- monthly- reboot- $xPERIODICx_zfsnap_delete_prefixes" $xPERIODICx_zfsnap_delete_fs -r $xPERIODICx_zfsnap_delete_recursive_fs
---
>         xPREFIXx/zfsnap destroy $OPTIONS -p "hourly- daily- weekly- monthly- reboot- $xPERIODICx_zfsnap_delete_prefixes"

同時に、/etc/periodic.confで$xPERIODICx_zfsnap_delete_fs、$xPERIODICx_zfsnap_delete_recursive_fsの指定も行うこと。

結果

dailyの削除スクリプト例(dailyのみ)

#!/bin/sh

# This file is licensed under the BSD-3-Clause license.
# See the AUTHORS and LICENSE files for more information.

# If there is a global system configuration file, suck it in.
if [ -r /etc/defaults/periodic.conf ]; then
    . /etc/defaults/periodic.conf
    source_periodic_confs
fi

# daily_zfsnap_delete_enable   - Delete old snapshots periodicaly (values: YES | NO)
# daily_zfsnap_delete_flags    - `zfsnap destroy` flags
# daily_zfsnap_delete_verbose  - Verbose output (values: YES | NO)
# daily_zfsnap_delete_prefixes - Space-separated list of prefixes of expired zfsnap snapshots to delete
#                                     'hourly-', 'daily-', 'weekly-', 'monthly-', and 'reboot-' prefixes are hardcode
d

case "${daily_zfsnap_delete_enable-"NO"}" in
    [Yy][Ee][Ss])
        OPTIONS="$daily_zfsnap_delete_flags"

        case "${daily_zfsnap_delete_verbose-"NO"}" in
            [Yy][Ee][Ss]) OPTIONS="$OPTIONS -v" ;;
        esac

        /usr/local/sbin/zfsnap destroy $OPTIONS -p "hourly- daily- weekly- monthly- reboot- $daily_zfsnap_delete_pref
ixes" $daily_zfsnap_delete_fs -r $daily_zfsnap_delete_recursive_fs
        exit $?
        ;;

    *)
        exit 0
        ;;
esac

# vim: set ts=4 sw=4:

/etc/periodic.confの例(dailyのみ)

# zfsnap_daily
daily_zfsnap_enable="YES"
daily_zfsnap_recursive_fs="vault"
daily_zfsnap_verbose="YES"
daily_zfsnap_flags="-s -S -z"
daily_zfsnap_ttl="1w1d"
daily_zfsnap_delete_enable="YES"
daily_zfsnap_delete_flags="-s -S"
daily_zfsnap_delete_verbose="YES"
daily_zfsnap_delete_recursive_fs="vault"

上手くいけばdaily outputで以下のような内容が通知される。

/sbin/zfs destroy vault/chamber@daily-2018-12-21_04.00.00-1w1d ... DONE  
/sbin/zfs destroy vault/itunes@daily-2018-12-21_04.00.00-1w1d ... DONE  
/sbin/zfs destroy vault@daily-2018-12-21_04.00.00-1w1d ... DONE