Technically it is possible to do a server-to-server transfer by FTP (you open control connections to each server and setup the data connections appropriately to point between each other instead of to/from your local host). I've done this manually (many years ago though) but I don't know of any "friendly" client applications that support the feature.
If either host allows you SSH access, then you could just use the ftp
command line utility to send the file directly that way:
- login to the server via SSH
- change to the right directory (where the file either is or wants to go)
- run
ftp <name_or_IP_address_of_other_server>
and enter your username and password when prompted
- change to the directory where the file is (or wants to go) with the
cd
command
- issue the
binary
command to ensure that no line feed conversions (or similar) happen in the transfer
- issue the
hash
if you want a little progress indication while the file transfers
- if sending the file from the server you SSHed into issue the
put <filename>
command, and if you want to pull the file from the other server to the one you are logged into use get <filename>
instead.
- wait... (even if you get a 100Mbit transfer between the servers, a 2Gbyte file will take a few minutes to transfer)
For more details of the command line ftp client either run man ftp
on the server or look at an online copy of the man pages such as this one (though reading the server's local man page for the command is slightly safer as you know for sure it is talking about the version you have).
If both hosts allow you SSH access then it is slightly easier as in most cases SCP/SFTP will be enabled too and you can do this:
- log in to the server that the file needs to be copied to
- go to the directory where the file needs to be
- run a command like
scp user@other.server.tld:~/path/filename .
or
- log in to the server that currently has the file
- run a command like
scp path/to/file/filename user@other.server.tld:~/
Yet another option, if the destination server allows SSH access and the file your want to transfer to it is available via HTTP or HTTPS, is to transfer the file by HTTP(S) with wget (most hosts will have wget installed on their servers):
- log in to the server that the file needs to be copied to
- go to the directory where the file needs to be
- run a command like
wget http://source.server.tld/path/filename