Recently I wanted to copy some files between two servers. Yes I haven’t done this before in a terminal session. Usually I utilize GUI powered tools to do the job via SFTP.
I decided to do this with SCP because it’s way faster than SFTP, http://www.kontrolit.net/glossary/ sais:
SFTP, Secure File Transfer Program similar to ftp, but performs all operations over an encrypted SSH transport, thus gaining the features of public key encryption and compression.
SCP, Secure Copy is a program to copy files between hosts on a network. It too uses SSH for authentication and data transfer, thus gaining the features of strong authentication and secure encrypted communications.
Some googleing brought me to this site: http://www.examplenow.com/scp/ Instead of bookmarking it I share the information with you. These are some methods how you can copy files or whole directories:
Copy myfile.txt from myserver1.com to myserver2.com:
scp [email protected]:/tmp/myfile.txt [email protected]:/tmp/dir/myfile.txt
Copy file from remote server myserver.com to /tmp/mydir:
scp [email protected]:myfile.txt /tmp/mydir
Copy remote file myfile.txt from /tmp/mydir to current directory:
scp myfile.txt [email protected]:/tmp/mydir
Copy file using port 5533 to current directory:
scp -P 5533 [email protected]:/home/user/myfile.txt .
Copy the local directory mydir to /tmp/remotedir on myserver.com:
scp -r mydir [email protected]:/tmp/remotedir
Copy files from myserver.com to current directory and set the bandwidth limit to 50 Kbit/s:
scp -l 50 [email protected]:/home/user/* .
Use blowfish encription and compression to transfer files, this will increase speed on low bandwith connections, but also add extra overhead on the CPU:
scp -c blowfish -C myfile.txt [email protected]:~
Copy multiple files from remote host to current directory:
scp [email protected]:~/\{myfile1.txt,myfile2.txt\} .
Use blowfish encription to speed up transfer rate, copy myfile.txt to myserver.com in users home directory:
scp -c blowfish myfile.txt [email protected]:~