From bc8e1659b3a445ac235677fef437dd8623669d6b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 2 May 2020 17:08:24 +0300 Subject: [PATCH] Draft ZFS snapshot utility --- bin/bin/zsnap.zsh | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 bin/bin/zsnap.zsh diff --git a/bin/bin/zsnap.zsh b/bin/bin/zsnap.zsh new file mode 100755 index 0000000..a14979b --- /dev/null +++ b/bin/bin/zsnap.zsh @@ -0,0 +1,69 @@ +#!/bin/zsh -e + +usage() { +cat < $dst/$latest.zfs.zst.gpg + sync + touch $dst/$latest.from + ;; + sync) + dst="$3" + [ -d "$dst" ] || usage + latest_dst=$(find $dst -type f -name "*.from" | sort -rn | sed -n 1p) + [ -n "$latest_dst" ] + latest_dst=$(basename ${latest_dst%.from}) + [ "$latest_dst" != "$latest" ] + set PIPE_FAIL + zfs send -Rv -i $latest_dst $latest | zstd | ${=enccmd} > $dst/$latest.zfs.zst.gpg + sync + echo "$latest_dst" > $dst/$latest.from + ;; + clean) + count="$3" + [ -n "$count" ] || usage + count=$(( $count + 1 )) + for snap in $(echo $snaps) ; do + count=$(( $count - 1 )) + [ $count -le 0 ] || continue + zfs destroy -Rv $snap + done + ;; + *) + usage + ;; +esac -- 2.44.0