- cmd="rsync --archive"
- [ "$compress" -ne 0 ] && cmd="$cmd --compress"
- [ "$local" -eq 0 ] && cmd="$cmd --rsh=\"$ssh_cmd\""
- cmd="$cmd --delete --delete-excluded --sparse"
- [ "$VERBOSE" -gt 0 ] && cmd="$cmd --progress"
- if [ "$source_root" = "$default_source_root" ]; then
- cmd="$cmd --exclude=/dev --exclude=/proc --exclude=/sys"
- cmd="$cmd --exclude=/run --exclude=/tmp --exclude=/var/tmp"
- cmd="$cmd --exclude=/media --exclude=/mnt --exclude=/net"
- cmd="$cmd --exclude=/var/cache/apt --exclude=/var/log"
+ if [[ "$backup_type" == "rsync" ]]; then
+ cmd="$rsync --archive --timeout=$io_timeout"
+ [ "$compress" -ne 0 ] && cmd="$cmd --compress"
+ [ "$local" -eq 0 ] && cmd="$cmd --rsh=\"$ssh_cmd\""
+ cmd="$cmd --delete-during --delete-excluded --sparse"
+ if [ "$VERBOSE" -gt 0 ]; then
+ [ "$rsync_proto" -ge 31 ] \
+ && cmd="$cmd --info=progress2" \
+ || cmd="$cmd --progress"
+ fi
+ set -f
+ if [ "$source_root" = "$default_source_root" ]; then
+ for dir in \
+ "/dev/**" \
+ "/media/**" \
+ "/mnt/**" \
+ "/net/**" \
+ "/proc/**" \
+ "/run/**" \
+ "/sys/**" \
+ "/tmp/**" \
+ "/var/cache/apt/**" \
+ "/var/log/**" \
+ "/var/tmp/**" \
+ ; do
+ cmd="$cmd --exclude=$dir"
+ done
+ fi
+ [ -n "$exclude_args_add" ] && cmd="$cmd $exclude_args_add"
+ for dir in $exclude_dirs_add; do
+ cmd="$cmd --exclude=$dir"
+ done
+ [ -n "$rsync_args_add" ] && cmd="$cmd $rsync_args_add"
+ set +f
+
+ [ "$local" -eq 0 ] \
+ && cmd="$cmd ${user}@${system}:$source_root $sys_target/" \
+ || cmd="$cmd $source_root $sys_target/"
+ elif [[ "$backup_type" == "scp" ]]; then
+ cmd="scp"
+ [ "$VERBOSE" -eq 0 ] && cmd="$cmd -q"
+ for file in $files; do
+ cmd="$cmd ${user}@${system}:$file $sys_target/"
+ done
+ else
+ echo "Backup type \"$backup_type\" undefined, \"$system\" skipped!"
+ echo; continue