aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMirek Kratochvil <exa.exa@gmail.com>2017-01-18 11:45:04 +0100
committerMirek Kratochvil <exa.exa@gmail.com>2017-01-18 11:45:04 +0100
commite589e8f52c4e4465e4cebffdd1f51636d22437b6 (patch)
treed5e0c4515ae0a231b96dc703e8aacfb539030bb3
parent4e2e2f253a3462b227301083b2a4f70ebbf13f7e (diff)
downloadzfs-backup-e589e8f52c4e4465e4cebffdd1f51636d22437b6.tar.gz
zfs-backup-e589e8f52c4e4465e4cebffdd1f51636d22437b6.tar.bz2
support local pull
-rwxr-xr-xzb-pull15
1 files changed, 10 insertions, 5 deletions
diff --git a/zb-pull b/zb-pull
index 2f8eca2..615d09e 100755
--- a/zb-pull
+++ b/zb-pull
@@ -4,7 +4,8 @@ source /etc/profile >/dev/null
[ -f "$HOME/.zb-rc" ] && source "$HOME/.zb-rc"
if [[ -z "$1" || -z "$2" || -z "$3" ]] ; then
- echo "usage: $0 <ssh_remote> <remote_zfs_object> <local_zfs_object>" >&2
+ echo "usage: $0 <remote> <remote_zfs_object> <local_zfs_object>" >&2
+ echo "<remote> is either ssh-style user@hostname, or - for local operation" >&2
exit 1
fi
@@ -16,7 +17,11 @@ timestamp () {
}
-ssh_remote="$1"
+if [ "$1" = "-" ]
+then remote_cmd="sh -c"
+else remote_cmd="ssh $1"
+fi
+
remote_zfs="$2"
local_zfs="$3"
@@ -34,7 +39,7 @@ while read l ; do
newest_common="$snapname"
fi >/dev/null 2>/dev/null
done < <(
-ssh $ssh_remote "zfs list -t snapshot -r -d 1 -H \"${remote_zfs}\" " | awk '{print $1;}' | while read l ; do
+$remote_cmd "zfs list -t snapshot -r -d 1 -H \"${remote_zfs}\" " | awk '{print $1;}' | while read l ; do
#link unix timestamps
unixtime=`timestamp "$l"` || continue
echo "$unixtime" "$l"
@@ -56,11 +61,11 @@ ret=0
if [ "$newest_common" = "N/A" ] ; then
#do a full send
- ssh $ssh_remote "zfs send -R \"${remote_zfs}@zb-${newest}\"" | zfs recv -F "${local_zfs}"
+ $remote_cmd "zfs send -R \"${remote_zfs}@zb-${newest}\"" | zfs recv -F "${local_zfs}"
ret=$?
else
#do incremental send
- ssh $ssh_remote "zfs send -R -I \"${remote_zfs}@zb-${newest_common}\" \"${remote_zfs}@zb-${newest}\"" | zfs recv -F "${local_zfs}"
+ $remote_cmd "zfs send -R -I \"${remote_zfs}@zb-${newest_common}\" \"${remote_zfs}@zb-${newest}\"" | zfs recv -F "${local_zfs}"
ret=$?
fi