I second the suggestion by petrus4, lftp is way better suited to scripting than ftp.
The ...usage open host-name... error and what follows is because you use the variable $site_ftp which is empty. The variable you set is $site. And if you do it with the open command, you must remove the ftp:// prefix.
The warning about line 21 is because you use a here document with <<EOF which means "use everything what follows as input until you find a line which reads EOF". But you don't have a line which reads EOF.
By the way, sshfs works very nicely with hetzner backup space. With sshfs, you can mount the backup space as if it was a partition. VERY easy to use.