From 881f9ace728c7108c0e91dad1d85558f6ec12fc5 Mon Sep 17 00:00:00 2001 From: Tamas Gerczei Date: Thu, 8 Aug 2019 10:21:39 +0200 Subject: [PATCH] will now receive with the '-s' flag to enable resuming provided the system supports it --- zfs-backup.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/zfs-backup.sh b/zfs-backup.sh index c770931..2d1a7bc 100755 --- a/zfs-backup.sh +++ b/zfs-backup.sh @@ -107,7 +107,7 @@ function backup() { R_SNAPMODIFIER="I $(dirname ${DATASET})/$(basename ${R_SNAPSHOTS[*]:(-1)})" fi # send any previous snapshots - /usr/sbin/zfs send -R${RAW_MOD}${R_SNAPMODIFIER} ${LASTSNAP} | ${RMOD} /usr/sbin/zfs recv -Feuv ${SAVETO} 2>&1 >> ${LOGFILE} + /usr/sbin/zfs send -R${RAW_MOD}${R_SNAPMODIFIER} ${LASTSNAP} | ${RMOD} /usr/sbin/zfs recv -Feu${RESUME_MOD}v ${SAVETO} 2>&1 >> ${LOGFILE} } else # ensure this does not remain in effect @@ -115,7 +115,7 @@ function backup() { fi # send backup - /usr/sbin/zfs send -R${RAW_MOD}${SNAPMODIFIER} ${NEWSNAP} | ${RMOD} /usr/sbin/zfs recv -Feuv ${SAVETO} 2>&1 >> ${LOGFILE} + /usr/sbin/zfs send -R${RAW_MOD}${SNAPMODIFIER} ${NEWSNAP} | ${RMOD} /usr/sbin/zfs recv -Feu${RESUME_MOD}v ${SAVETO} 2>&1 >> ${LOGFILE} # if replication is unsuccessful, omit the aging check so as to prevent data loss if [ $? -eq 0 ] @@ -233,6 +233,21 @@ if [[ "$PLATFORM_VERSION" =~ ^joyent ]] logger -t $(basename ${0%.sh}) -p user.notice "ZFS encryption is not supported on $PLATFORM_VERSION" ENCRYPTION_FEATURE="disabled" fi + + EXTENSION_FEATURE=$(/usr/sbin/zpool get -Ho value feature@extensible_dataset ${POOL_NAME}) + if [ $? -ne 0 ] + then + # feature unknown, outdated PI + logger -t $(basename ${0%.sh}) -p user.notice "extensible datasets are not supported on $PLATFORM_VERSION" + EXTENSION_FEATURE="disabled" + else + # check if resuming is supported + if [ $EXTENSION_FEATURE == "active" ] + then + # extensible_dataset feature available + RESUME_MOD="s" + fi + fi fi # determine current timestamp