You both have to use an array to store the arguments. It fails because of wordsplitting.
Code:
[...]
RSYNC_ARGS=("$RSYNC_OPTS" "$RSYNC_RSH" "$RSYNC_LOG" "$RSYNC_SOURCE" "$USER@SLUG_HOST:\"$RSYNC_TARGET\"")
rsync "${RSYNC_ARGS[@]}"
[...]
Also, you don't need to explicitly write where the binaries are. Just adjust your
PATH. (and I hope it contains /usr/bin, heh...)
----
Code:
ARGS=(-rptgoDLKv --safe-links --exclude-from=/home/admin/etc/rsync-exclude)
[...]
rsync "${ARGS[@]}" "$USER@$DOMAIN:/home/$USER/$TARGET/webserver/$DOMAIN/"
----
And don't use uppercase variables. They're meant to be variables of the shell environment, per convention, so you could overwrite one not on purpose.