RSYNC_CMD+="q"
fi
RSYNC_CMD+=" "${EXCLUDE_ARGS[@]}" \"$FILE_PATH\" \"$MOUNT_POINT$PARENT/\""
- if [[ -n "${RSYNC_CMDS[$DRIVE]}" ]]; then
- RSYNC_CMDS["$DRIVE"]+=" & $RSYNC_CMD"
- else
- RSYNC_CMDS["$DRIVE"]="$RSYNC_CMD"
- fi
+ RSYNC_CMDS["$DRIVE"]+="${RSYNC_CMDS[$DRIVE]:+$'\n'}$RSYNC_CMD"
done
for DRIVE in "${!RSYNC_CMDS[@]}"; do
- if [[ $DEBUG -eq 1 ]]; then
- echo "${RSYNC_CMDS[$DRIVE]}"
- fi
- if [[ $TEST -eq 0 ]]; then
- eval "${RSYNC_CMDS[$DRIVE]}" &
- fi
+ while IFS= read -r cmd; do
+ [[ -z "$cmd" ]] && continue
+ if [[ $DEBUG -eq 1 ]]; then
+ echo "$cmd"
+ fi
+ if [[ $TEST -eq 0 ]]; then
+ eval "$cmd" &
+ fi
+ done <<< "${RSYNC_CMDS[$DRIVE]}"
done
wait
echo ""
for DRIVE in "${!RSYNC_CMDS[@]}"; do
- DRIVE_SERIAL="$(lsblk -n -o SERIAL `mount| grep /mnt/backup2 | awk 'NR==1{print $1}'|sed 's/[0-9]*//g'`)"
+ DRIVE_SERIAL="$(lsblk -n -o SERIAL `mount| grep /mnt/backup2 | awk 'NR==1{print $1}' | sed 's/[0-9]*//g'`)"
echo "-------------------------------------------"
echo "Backup summary for Cold Backup Drive $DRIVE"
echo "-------------------------------------------"
echo ""
for FILE_PATH in "${!INCLUDE_PATHS[@]}"; do
if [[ "${INCLUDE_PATHS[$FILE_PATH]}" == "$DRIVE" ]]; then
- echo "$FILE_PATH ("$(du -sh "$FILE_PATH" 2>/dev/null | cut -f1)")"
+ echo "$FILE_PATH ("$(du -sh "$MOUNT_POINT_PREFIX$DRIVE$FILE_PATH" 2>/dev/null | cut -f1)")"
if [ -d "$FILE_PATH" ]; then
for EXCLUDE_PATH in "${!EXCLUDE_PATHS[@]}"; do
if [[ "$EXCLUDE_PATH" =~ ^"$FILE_PATH"* ]]; then
- echo " Excluding .${EXCLUDE_PATH:${#FILE_PATH}} ($(du -sh "$EXCLUDE_PATH" 2>/dev/null | cut -f1))"
+ echo " Excluding .${EXCLUDE_PATH:${#FILE_PATH}}"
fi
done
fi