rsync is indeed a better option for synchronization. It may be run through a ssh tunnel for security, if I'm not mistaken. wget can also be used to download any updates from the remote machine. When run on both sides, this too may synchronize the machines, but it may be a little tricky to set up.
As for the login issue, you may add the login credentials to your .netrc file (in your $HOME).
For some ftp clients, this automatically completes the login. See "man ftp" for details.
"expect", or more advanced scripting can also be used to catch the login questions.
Alternatively, you can also use command line utilities like ncftpput (for upload) and ncftpget or wget (for download). ncftp, ncftpget, ncftpput & wget all have options to supply the user credentials.