From 0850e82df3a37faee0c62dcf96a490b7b610ba87 Mon Sep 17 00:00:00 2001 From: Kevin McCormick Date: Mon, 12 Sep 2016 11:39:29 -0700 Subject: [PATCH] exit on failure of critical zfs commands Execution should not continue upon failure of certain zfs commands. In particular, cleanup/rotation of the oldest snapshots will no longer occur upon a failure to send/receive. --- backup-zfs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backup-zfs b/backup-zfs index 7898dc9..1d8915d 100755 --- a/backup-zfs +++ b/backup-zfs @@ -118,7 +118,7 @@ fi ### create new snapshot on src ### cur="$srcfs@${tag}_$date" -ZFS "$srchost" snapshot -r "$cur" +ZFS "$srchost" snapshot -r "$cur" || die $? "zfs snapshot failed" ### ### find newest snapshot matching the tag on dest @@ -132,14 +132,14 @@ last="$(ZFS "$desthost" list -d 1 -t snapshot -H -S creation -o name $destfs/$sr # 1st time: send full snapshot if [[ -z $last ]] ; then log "sending full recursive snapshot from $src to $dest" - ZFS "$srchost" send -R "$cur" | ZFS "$desthost" receive -Fue "$destfs" + ZFS "$srchost" send -R "$cur" | ZFS "$desthost" receive -Fue "$destfs" || die $? "zfs full send failed" # special case: tagged snapshots exist on dest, but src has rotated through all elif ! ZFS "$srchost" list $srcfs@$last &>/dev/null ; then die 1 "no incremental path from from $src to $dest" # normal case: send incremental else log "sending incremental snapshot from $src to $dest (${last#${tag}_}..${cur#*@${tag}_})" - ZFS "$srchost" send -R -I "$last" "$cur" | ZFS "$desthost" receive -Fue "$destfs" + ZFS "$srchost" send -R -I "$last" "$cur" | ZFS "$desthost" receive -Fue "$destfs" || die $? "zfs incremental send failed" fi ###