diff --git a/restore-volumes.sh b/restore-volumes.sh index 2da2aa7f..a2665c1d 100755 --- a/restore-volumes.sh +++ b/restore-volumes.sh @@ -22,11 +22,17 @@ calculate_required_space() { # Remove 'G' from the size and convert it to bytes size_bytes=$(echo "$size" | sed 's/G//') - size_bytes=$(( size_bytes * 1024 * 1024 * 1024 )) # Convert GB to bytes + if [[ $size_bytes == 0* ]]; then + # this happens when the size is smalleer than 1 GB + size_bytes=1 + fi + + size_bytes=$(echo "$size_bytes * 1024 * 1024 * 1024" | bc) # Calculate 10% of the size and add it to the required space - ten_percent=$(( size_bytes / 10 )) - required_space=$(( size_bytes + ten_percent )) + ten_percent=$(echo "$size_bytes / 10" | bc) + required_space=$(echo "$size_bytes + $ten_percent" | bc) + #required_space=$(( size_bytes + ten_percent )) echo "$required_space" } @@ -44,7 +50,7 @@ cleanup_folders=() for key in $keys; do volume_name="rpc_$key" - + newest_file=$(ls -1 "$backup_dir"/"$volume_name"* | sort | tail -n 1) if [ -z "$newest_file" ]; then @@ -58,16 +64,17 @@ for key in $keys; do directory="$volume_dir/rpc_$key/_data/" restore_files+=("$newest_file") cleanup_folders+=("$directory") - + required_space=$(calculate_required_space "$(basename "$newest_file")") - total_space=$((total_space + required_space)) + #echo "$volume_name: $required_space" + total_space=$(echo "$total_space + $required_space" | bc) [ -d "$directory" ] && existing_size=$(du -sb "$directory" | awk '{ total += $1 } END { print total }') || existing_size=0 - cleanup_space=$((cleanup_space + existing_size)) + cleanup_space=$(echo "$cleanup_space + existing_size" | bc) done if [ "$2" = "--print-size-only" ]; then - GB=$(( $total_space / 1024 / 1024 / 1024 )) + GB=$(echo "$total_space / 1024 / 1024 / 1024" | bc ) echo "$GB" exit 0 fi