Below is a sample expect script to handle ssh password prompt should you not get the ssh keys to be working between hosts:
#!/usr/bin/expect -f
set host XXX
set user XXX
set password XXX
set remote_path XXX
set local_path XXX
# disables the timeout, so script waits as long as it takes for the transfer
set timeout -1
# call rsync
spawn rsync -av -e ssh $user@$host:$remote_path $local_path
# avoids that if the output is to large, the earlier bytes won't be fotgotten
match_max 100000
# we're expecting the password prompt, we use a pattern so it can be anything that contains password: or Password
expect "*?assword:" { send "$password\r"}
# send a newline to make sure we get back to the command line
send -- "\r"
# wait for the end-of-file in the output
expect eof