A lot of times I am tasked with moving a site from one server out of my control to one in my control. These remote servers sometimes have very limited capabilities and I generally have very little access. Ideally I like to
rsync the data over but sometimes all I have is ftp (especially if it is a Windows server).
I find the program
lftp to be a lifesaver here. I can log into the remote server and "mirror" entire directories with the mirror command. It will only download new/changed files and does its best to keep permissions in order.