zsc-sync.sh: don't mount remote fs, don't interrupt on errors
This commit is contained in:
parent
7ed6a15ec3
commit
e0af0c4021
38
zsc-sync.sh
38
zsc-sync.sh
@ -46,7 +46,7 @@ resume_transfer() {
|
|||||||
RESUME_TOKEN=$(echo -e "$resume_tokens" | grep -P "^$remote_dataset\t.*\$" | cut -d$'\t' -f2)
|
RESUME_TOKEN=$(echo -e "$resume_tokens" | grep -P "^$remote_dataset\t.*\$" | cut -d$'\t' -f2)
|
||||||
if [ "$RESUME_TOKEN" != "" ] && [ "$RESUME_TOKEN" != "-" ]; then
|
if [ "$RESUME_TOKEN" != "" ] && [ "$RESUME_TOKEN" != "-" ]; then
|
||||||
echo "Resuming interrupted transfer..."
|
echo "Resuming interrupted transfer..."
|
||||||
zfs send -v -t "$RESUME_TOKEN" | ssh $REMOTE zfs receive -F -s "$remote_dataset" || return 1
|
zfs send -v -t "$RESUME_TOKEN" | ssh $REMOTE zfs receive -Fu -s "$remote_dataset" || return 1
|
||||||
echo "Resumed transfer finished."
|
echo "Resumed transfer finished."
|
||||||
update_remote_state
|
update_remote_state
|
||||||
return 0
|
return 0
|
||||||
@ -120,12 +120,16 @@ handle_dataset() {
|
|||||||
if [ $RECURSIVE = true ] ; then
|
if [ $RECURSIVE = true ] ; then
|
||||||
recu="-R"
|
recu="-R"
|
||||||
fi
|
fi
|
||||||
zfs send -v -p $recu $incr "$DATASET@$TO_SNAPSHOT" | ssh $REMOTE zfs receive -F -s "$TARGET_REMOTE_DATASET" || return 1
|
zfs send -v -p $recu $incr "$DATASET@$TO_SNAPSHOT" | ssh $REMOTE zfs receive -Fu -s "$TARGET_REMOTE_DATASET" || return 1
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Done"
|
echo "Done"
|
||||||
echo
|
echo
|
||||||
|
else
|
||||||
|
echo "No snapshot to sync"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
init_subdataset() {
|
init_subdataset() {
|
||||||
@ -149,7 +153,7 @@ init_subdataset() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[$DATASET@$LOCAL_SNAPSHOT -> $TARGET_REMOTE_DATASET]"
|
echo "[$DATASET@$LOCAL_SNAPSHOT -> $TARGET_REMOTE_DATASET]"
|
||||||
zfs send -v -p "$DATASET@$LOCAL_SNAPSHOT" | ssh $REMOTE zfs receive -F -s "$TARGET_REMOTE_DATASET" || return 1
|
zfs send -v -p "$DATASET@$LOCAL_SNAPSHOT" | ssh $REMOTE zfs receive -Fu -s "$TARGET_REMOTE_DATASET" || return 1
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "--- Done"
|
echo "--- Done"
|
||||||
@ -158,17 +162,21 @@ init_subdataset() {
|
|||||||
echo
|
echo
|
||||||
echo "--- Subdataset $TARGET_REMOTE_DATASET is out of date compared to parent dataset. Syncing first..."
|
echo "--- Subdataset $TARGET_REMOTE_DATASET is out of date compared to parent dataset. Syncing first..."
|
||||||
|
|
||||||
handle_dataset "$DATASET" false "" "$TARGET_REMOTE_DATASET" || exit 1
|
handle_dataset "$DATASET" false "" "$TARGET_REMOTE_DATASET" || return 1
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "--- Done"
|
echo "--- Done"
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
update_remote_state
|
update_remote_state
|
||||||
|
|
||||||
|
HAD_ERROR=0
|
||||||
|
|
||||||
for line in $(cat "$ZSC_CONFIG") ; do
|
for line in $(cat "$ZSC_CONFIG") ; do
|
||||||
IFS=: read dataset recursive d w m y prefix <<< "$line"
|
IFS=: read dataset recursive d w m y prefix <<< "$line"
|
||||||
echo
|
echo
|
||||||
@ -206,14 +214,30 @@ for line in $(cat "$ZSC_CONFIG") ; do
|
|||||||
echo "Subdatasets: ${SUBDATASETS[@]}"
|
echo "Subdatasets: ${SUBDATASETS[@]}"
|
||||||
echo
|
echo
|
||||||
for p in "${SUBDATASETS[@]}"; do
|
for p in "${SUBDATASETS[@]}"; do
|
||||||
init_subdataset $p $dataset "$latest_synchronized_snapshot" || exit 1
|
init_subdataset $p $dataset "$latest_synchronized_snapshot"
|
||||||
|
r=$?
|
||||||
|
if [ ! $r ]; then
|
||||||
|
echo "Error while initing subdataset $p, continuing"
|
||||||
|
if [ $HAD_ERROR ]; then
|
||||||
|
HAD_ERROR=$r
|
||||||
|
fi
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
echo "----------"
|
echo "----------"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
update_remote_state
|
||||||
fi
|
fi
|
||||||
|
|
||||||
handle_dataset $dataset $recursive $prefix || exit 1
|
handle_dataset $dataset $recursive $prefix
|
||||||
|
r=$?
|
||||||
|
if [ ! $r ]; then
|
||||||
|
echo "Error while initing subdataset $p, continuing"
|
||||||
|
if [ $HAD_ERROR ]; then
|
||||||
|
HAD_ERROR=$r
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "----------------------------------------------------------------------"
|
echo "----------------------------------------------------------------------"
|
||||||
@ -224,3 +248,5 @@ done
|
|||||||
### UNLOCK ###
|
### UNLOCK ###
|
||||||
echo "Unlocking $0"
|
echo "Unlocking $0"
|
||||||
lockfile-remove "$0"
|
lockfile-remove "$0"
|
||||||
|
|
||||||
|
exit $HAD_ERROR
|
||||||
|
Loading…
Reference in New Issue
Block a user