From 5c9dc9c45b860aa07a54dc37eb02343e685ace27 Mon Sep 17 00:00:00 2001 From: Ralf Zerres Date: Thu, 19 Dec 2019 01:34:45 +0100 Subject: [PATCH] dsnap-sync: correction for tranfer_size calculation * adapt btrfs output to be compatible with pv requested format convert MiB or GiB to M or G Signed-off-by: Ralf Zerres --- bin/dsnap-sync | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/dsnap-sync b/bin/dsnap-sync index 1c093e7..31d6b65 100755 --- a/bin/dsnap-sync +++ b/bin/dsnap-sync @@ -217,17 +217,17 @@ check_transfer_size () { else if [ ${#clone_snapshot} -gt 0 ]; then # WIP: dry run with btrfs send - exec 5>&1 - transfer_size=$(btrfs send -v -p $clone_snapshot $source_snapshot \ - | pv -f 2>&1 > /dev/null | tee >(cat - >&5) \ - | awk -F ' ' '{print $1}' ) + # need to substitue btrfs 'x.yyGiB' suffix, since pv will need 'xG' + transfer_size=$(btrfs send -v -p $clone_snapshot $source_snapshot 2>$BTRFS_PIPE \ + | pv -f 2>&1 >/dev/null \ + | awk -F ' ' '{ gsub(/.[0-9][0-9]MiB/,"M"); gsub(/.[0-9][0-9]GiB/,"G"); print $1 }' ) else # filesystem size transfer_size=$(du --one-file-system --summarize $snapper_source_snapshot 2>/dev/null \ | awk -F ' ' '{print $1}') - fi - if [ $transfer_size -ge 1048576 ]; then - transfer_size=$(($transfer_size / 1024 / 1024))G + if [ $transfer_size -ge 1048576 ]; then + transfer_size=$(($transfer_size / 1024 / 1024))G + fi fi if [ $verbose -ge 2 ]; then printf "${MAGENTA}BTRFS transfer size for ${GREEN}source snapshot${MAGENTA}: size=${GREEN}'%s'${NO_COLOR} ...\n" \ @@ -1855,7 +1855,7 @@ run_backup () { ret=$(eval $cmd) if [ $? -eq 0 ]; then # get size of stream that needs to be transfered - check_transfer_size "source_snapshot=$snapper_source_snapshot" "clone_snapshot=snapper_common_sync_snapshot" + check_transfer_size "source_snapshot=$snapper_source_snapshot" "clone_snapshot=$snapper_common_sync_snapshot" create_pv_cmd case $selected_fstype in