Linux: scp Examples

What is Secure Copy?

scp copies files between hosts on a network. It uses ssh for data transfer, and uses the same authentication and provides the same security as ssh. Unlike rcp, scp will ask for passwords or passphrases if they are needed for authentication.

Examples

Copy the file “foobar.txt” from a remote host to the local host

$ scp your_username@example.com:foobar.txt /some/local/directory

Copy the file “foobar.txt” from the local host to a remote host

$ scp foobar.txt your_username@example.com:/some/remote/directory

Copy the directory “foo” from the local host to a remote host’s directory “bar”

$ scp -r foo your_username@example.com:/some/remote/directory/bar

Copy the file “foobar.txt” from remote host “example.com” to remote host “somewhere.com”

$ scp your_username@example.com:/some/remote/directory/foobar.txt \
your_username@somewhere.com:/some/remote/directory/

Copying the files “foo.txt” and “bar.txt” from the local host to your home directory on the remote host

$ scp foo.txt bar.txt your_username@example.com:~

Copy the file “foobar.txt” from the local host to a remote host using port 2264

$ scp -P 2264 foobar.txt your_username@example.com:/some/remote/directory

Copy multiple files from the remote host to your current directory on the local host

$ scp your_username@example.com:/some/remote/directory/\{a,b,c\} .
$ scp your_username@example.com:~/\{foo.txt,bar.txt\} .

scp Performance

By default scp uses the Triple-DES cipher to encrypt the data being sent. Using the Blowfish cipher has been shown to increase speed. This can be done by using option -c blowfish in the command line.

$ scp -c blowfish some_file your_username@example.com:~

It is often suggested that the -C option for compression should also be used to increase speed. The effect of compression, however, will only significantly increase speed if your connection is very slow. Otherwise it may just be adding extra burden to the CPU. An example of using blowfish and compression:

$ scp -c blowfish -C local_file your_username@example.com:~

These examples were copied from http://www.hypexr.org/linux_scp_help.php.

Linux: Setting File Permissions On Folders and Directories

To set all the files and folders in a directory to 755 use chmod:
chmod -R 755 /foo/bar

To set the directories to 755 and set the file to 644 for this you can use the find command e.g.
to change all the directories to 755:
find /foo/bar -type d -exec chmod 755 {} \;
to change all the files to 644:
find /foo/bar -type f -exec chmod 644 {} \;

Linux: apt-get install Error: “Media Change: Please insert the disc labelled ..”

So when we see the error in Ubuntu / Debian, basically the installer is looking for the cd as its first source of binaries:

Do you want to continue [Y/n]?
Media Change: Please insert the disc labelled
‘Debian GNU/Linux 5.0.4 _Lenny_ – Official i386 DVD Binary-1 20100131-19:16’
in the drive /cdrom/ and press enter

^C

We need to edit the /etc/apt/sources.list and comment out the line beginning with “deb cdrom …”

Using vi:

linux:~# vi /etc/apt/sources.list

Press i to insert a “#” char at the beginning of the line, then ESC, and “:wq” <RETURN> to write the file. Et voila 🙂

#############################################################
################### OFFICIAL DEBIAN CDROM ###################
#############################################################

#deb cdrom:[Debian GNU/Linux 5.0.4 _Lenny_ – Official i386 DVD Binary-1 20100131-19:16]/ lenny contrib main

#############################################################
################### OFFICIAL DEBIAN REPOS ###################
#############################################################

###### Debian Main Repos
deb http://ftp.uk.debian.org/debian/ lenny main contrib non-free