Linux-Noob Forums

Full Version: how do I scp a file
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

first of all what is scp ?

 

here's a quote direct from the top of the command

 



Code:
man scp




 

Quote:SCP(1) BSD General Commands Manual SCP(1) 

NAME

scp - secure copy (remote file copy program)

 

SYNOPSIS

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
 

it's the same as cp (copy) except secure as you are doing it over an ssh connection. When you start an scp session to a target box, you will be prompted for the users ssh password, this is normal and signifys to you that this is a secure transfer.

 

here's the usage



Code:
scp -prP port file user@ip:./




 

where port=the ssh listening port on the target linux box

where file=the file you want to send to the target

where user=the username you ssh in as

where ip=the ip address of the target box

where :./=the home directory of the user you are ssh'ing as

 

and

 

-p =Preserves modification times, access times, and modes from the original file.

-P=capital P for port as -p is already taken from above.

-r=recursively copy entire directories.

 

so a real example of the above would be like

 

Quote:[anyweb@localhost ~]$ scp -prP 1234 SC_160_P_ESD1.zip anyweb@213.64.12.34:./anyweb@213.64.12.34's password:

SC_160_P_ESD1.zip 100% 29MB 255.2KB/s 01:58
 

thanks to P38 and jY for the advice.

 

cheers

anyweb

if you need some more scp examples

I'd also add that another option is to use the "sftp" command. Essentially a FTP-like interactive shell but utilising SSH.

 

I find SCP is good for copying one or two files, but SFTP is easier for yanking several at a time (such as an entire directory).

 

Also check out "rsync" for keeping a mirrored server up to date with its original data.

feel free to give us some examples of doing this, i must confess to using the scp method quite a bit but any cli alternative is appreciated :)

In its simplest form, use:



Code:
sftp remote.host




 

To use a different username:



Code:
sftp fred@remote.host




 

To use other SSH options, such as specifying a different SSH port number:



Code:
sftp -oPort=65422 fred@remote.host
Connecting to remote.host...
fred@remote.host's password:




 

Once connected, use "help" at the prompt for assistance:



Code:
sftp> help
Available commands:
cd path                       Change remote directory to 'path'
lcd path                      Change local directory to 'path'
chgrp grp path                Change group of file 'path' to 'grp'
chmod mode path               Change permissions of file 'path' to 'mode'
chown own path                Change owner of file 'path' to 'own'
help                          Display this help text
get remote-path [local-path]  Download file
lls [ls-options [path]]       Display local directory listing
ln oldpath newpath            Symlink remote file
lmkdir path                   Create local directory
lpwd                          Print local working directory
ls [path]                     Display remote directory listing
lumask umask                  Set local umask to 'umask'
mkdir path                    Create remote directory
progress                      Toggle display of progress meter
put local-path [remote-path]  Upload file
pwd                           Display remote working directory
exit                          Quit sftp
quit                          Quit sftp
rename oldpath newpath        Rename remote file
rmdir path                    Remove remote directory
rm path                       Delete remote file
symlink oldpath newpath       Symlink remote file
version                       Show SFTP version
!command                      Execute 'command' in local shell
!                             Escape to local shell
?                             Synonym for help




Many FTP commands work in SFTP:

 

"cd" to change directory on remote host

"lcd" to change local directory (useful if you started the SFTP session in the wrong directory!)

"get myfile" to download that file from remote host to local directory

"put newfile" to upload a local file to the remote host

"mget *.txt" to download all files matching that pattern (shell globbing expression, not regular expression)

 

Hope that's enough to go on!