It’s quite common to need to upload or download file between one or more servers and the local computer.
If it’s available a ssh access on the servers, using
scp to transfer file from and to the server could be a very good option.
Here’s its syntax:
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
A very simple example:
scp localfilename.txt email@example.com:remotefilename.txt
The previous example copies
localfilename.txt from the local directory to the server
remoteuser as the ssh account to authenticate on the remote server. On the remote server the transferred file will be stored as
remotefilename.txt in the default login directory of
Copying file from and to specific directories:
scp /localdir/localfilename.txt firstname.lastname@example.org:/remotedir/remotefilename.txt
Compared to the previous example, in this case, the file is taken from
/localdir/localfilename.txt and stored remotely on
remoteuser should have write permission on the remote directory where the file is going to be written.
In the next case, the authentication is made through a keyfile, this is the syntax:
scp -i keyfile /localdir/localfilename.txt email@example.com:/remotedir/remotefilename.txt
In this case to login as
remoteuser there will not be a prompt for password, but
keyfile is used as identity file.
It’s even possible to copy directly files from one server to another
scp firstname.lastname@example.org:/filename.txt email@example.com:/remotedir/remotefilename.txt
Finally one of the best features is to copy recursively directory trees to the remote server:
scp -r /localdirectory firstname.lastname@example.org:/remotedirectory
In this case, the whole content of localdirectory is recursively copied into remotedirectory. This can be very useful for moving quickly website structures.
I hope you’ve found some useful information in this tutorial.