转自:http://blog.csdn.net/snlying/article/details/6184102
Linux系统中scp命令的用法.
scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器.
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一、将本机文件复制到远程服务器上
#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径
如图通过root用户登录远程服务器,输入yes表示同意建立ssh连接
按提示输入root用户的密码
如图所示建立连接后开始传输文件,显示百分比、实际时间和传送速度等信息
二、将远程服务器上的文件复制到本机
#scp remote@www.abc.com:/usr/local/sin.sh /home/administrator
remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)
/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件
/home/administrator 将远程文件复制到本地的绝对路径
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
=============================================================
例如:将远程服务器10.21.244.124下文件夹NewsGetter2中的所有内容拷贝到本机目录中:
landen@landen-Lenovo:~$ scp -r caipeichao@10.21.244.124:/home/caipeichao/NewsGetter2 /home/landen/文档
caipeichao@10.21.244.124's password:
autonews.txt 100% 9156KB 8.9MB/s 00:01
mil.txt 100% 4561KB 4.5MB/s 00:00
.main.py.swp 100% 12KB 12.0KB/s 00:00
enternews.txt 100% 10MB 9.9MB/s 00:01
sportnews.txt 100% 12MB 12.0MB/s 00:01
socianews.txt 100% 4923KB 4.8MB/s 00:01
healthnews.txt 100% 8889KB 8.7MB/s 00:01
edunews.txt 100% 11MB 10.6MB/s 00:01
gamenews.txt 100% 5983KB 5.8MB/s 00:00
internews.txt 100% 7724KB 7.5MB/s 00:01
housenews.txt 100% 15MB 15.4MB/s 00:01
technnews.txt 100% 13MB 13.4MB/s 00:01
internet.txt 100% 7056KB 6.9MB/s 00:01
civilnews.txt 100% 24MB 12.0MB/s 00:02
finannews.txt 100% 23MB 11.5MB/s 00:02
main.py 100% 2749 2.7KB/s 00:00
landen@landen-Lenovo:~$
今天在做两台linux机器文件拷贝时,试用了一下ftp命令与scp命令,这里作个记录。
ftp命令:
其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的拷贝。
1. 连接ftp服务器
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:ftp 192.168.26.66
b)服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。
2. 下载文件
下载文件通常用get和mget这两条命令。
a) get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中.
如要获取服务器上e:/rose/1.bmp,则
ftp> get /rose/1.bmp 1.bmp (回车)
b) mget
格式:mget [remote-files]
从远端主机接收一批文件至本地主机.
如要获取服务器上e:/rose/下的所有文件,则
ftp> cd /rose
ftp> mget *.* (回车)
注意:文件都下载到了linux主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则文件都下载到了/root/yint下。
3.上传文件
a) put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中.
如要把本地的1.bmp传送到远端主机e:/rose,并改名为333.bmp
ftp> put 1.bmp /rose/333.bmp (回车)
b) mput
格式:mput local-files
将本地主机中一批文件传送至远端主机.
如要把本地当前目录下所有bmp文件上传到服务器e:/rose 下
ftp> cd /rose (回车)
ftp> mput *.bmp (回车)
注意:上传文件都来自于主机的当前目录下。比如,在 /root/test下运行的ftp命令,则只有在/root/test下的文件linux才会上传到服务器e:/rose 下。
4. 断开连接
bye:中断与服务器的连接。
ftp> bye (回车)
SCP命令:
scp是安全的文件拷贝,基于ssh的登录
假定你想把本地计算机/home下的一个名为a.tar.tz的文件拷贝到远程服务器192.168.0.2上的/home/tmp。而且你在远程服务器上的帐号名为root。可以用这个命令:
scp /home/a.tar.tz root@192.168.0.2:/home/tmp/
如果把文件从远程机器拷贝到本机当前目录用这个命令:
scp root@192.168.0.2:/home/a.tar.tz
拷贝远程机器的整个目录下的文件
scp -r root@192.168.0.2:/home/* ./
PS:有个Winscp的windows客户端软件,通过它可以实现windows和linux的文件互拷贝,相当方便
========================================================
scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证.与rcp不同的是,scp会要求你输入密码如果需要的话.
最简单的应用如下:
scp 本地用户名@IP地址:文件名1 远程用户名@IP地址:文件名2
[本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对应的密码.
可能有用的几个参数:
-v 和大多数linux命令中的-v意思一样,用来显示进度.可以用来查看连接,认证,或是配置错误.
-C 使能压缩选项.
-P 选择端口.注意-p已经被rcp使用.
-4 强行使用IPV4地址.
-6 强行使用IPV6地址.
拷贝单个文件命令:
scp file username@ip:filepath
说明:
file: 要拷贝的文件名
username: 远程登录的用户名,
ip:远程服务器ip
filepath:远程文件路径
拷贝文件夹命令如下(多加上一个-r 参数即可):
scp -r file username@ip:filepath
不同的Linux之间copy文件常用有3种方法:
第一种是在其中一台Linux安装ftp Server,这样可以在另外一台使用ftp的client程序来进行copy。
第二种方法就是采用samba服务,类似Windows文件copy的方式来操作,比较简洁方便
第三种就是利用scp命令来进行文件复制。
scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
scp /home/1.gif root@172.19.2.75:/home/root
然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始cp和ungzip了
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单:
scp root@172.19.2.75:/home/abc.gif /home/root
复制文件夹的格式是
scp -r root@192.168.1.1:/home/ /本地目录
本篇文章来自<A href='http://www.soidc.net'>IDC专家网</a> 原文链接:http://www.soidc.net/articles/1215484977397/20100323/1215945703727_1.html
================================================================
- linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;
- ==================
- scp 命令
- ==================
- scp 可以在 2个 linux 主机间复制文件;
- 命令基本格式:
- scp [可选参数] file_source file_target
- ==================
- 从 本地 复制到 远程
- ==================
- * 复制文件:
- * 命令格式:
- scp local_file remote_username@remote_ip:remote_folder
- 或者
- scp local_file remote_username@remote_ip:remote_file
- 或者
- scp local_file remote_ip:remote_folder
- 或者
- scp local_file remote_ip:remote_file
- 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
- 第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
- * 例子:
- scp /home/space/music/1.mp3 root @www.pk.edu.cn:/home/root/others/music
- scp /home/space/music/1.mp3 root @www.pk.edu.cn:/home/root/others/music/001.mp3
- scp /home/space/music/1.mp3 www.pk.edu.cn:/home/root/others/music
- scp /home/space/music/1.mp3 www.pk.edu.cn:/home/root/others/music/001.mp3
- * 复制目录:
- * 命令格式:
- scp -r local_folder remote_username@remote_ip:remote_folder
- 或者
- scp -r local_folder remote_ip:remote_folder
- 第1个指定了用户名,命令执行后需要再输入密码;
- 第2个没有指定用户名,命令执行后需要输入用户名和密码;
- * 例子:
- scp -r /home/space/music/ root@www.pk.edu.cn:/home/root/others/
- scp -r /home/space/music/ www.pk.edu.cn:/home/root/others/
- 上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录
- ==================
- 从 远程 复制到 本地
- ==================
- 从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;
- 例如:
- scp root@www.pk.edu.cn:/home/root/others/music /home/space/music/1.mp3
- scp -r www.pk.edu.cn:/home/root/others/ /home/space/music/
========================================================================
SSH提供了一些明令和shell用来登录远程服务器。在默认情况下它不允许你拷贝文件,但是还是提供了一个"scp"命令。
假定你想把本地计算机当前目录下的一个名为"dumb"的文件拷贝到远程服务器www.foobar.com上你的家目录下。而且你在远程服务器上的帐号名为"bilbo"。可以用这个命令:
scp dumb bilbo@www.foobar.com:.
把文件拷贝回来用这个命令:
scp bilbo@www.foobar.com:dumb .
"scp"调用SSH进行登录,然后拷贝文件,最后调用SSH关闭这个连接。
如果在你的"~/.ssh/config"文件中已经为www.foobar.com做了这样的配置:
Host *fbc
HostName www.foobar.com
User bilbo
ForwardAgent yes
那么你就可以用"fbc"来代替"bilbo@www.foobar.com",命令就简化为"scp dumb fbc:."。
"scp"假定你在远程主机上的家目录为你的工作目录。如果你使用相对目录就要相对于家目录。
用"scp"命令的"-r"参数允许递归地拷贝目录。"scp"也可以在两个不同的远程主机之间拷贝文件。
关于SSH的详细信息,可以参考http://www.linuxaid.com.cn/engineer/brimmer/html/ssh.htm
scp user@host:/path/to/files local_file_name
拷贝到远程
scp local_file_name user@host:/path/to/files
拷贝目录到远程
scp -r local_file_name user@host:/path/to/files
ftp:
wget ftp://ftp.isc.org/isc/bind9/9.2.2/bind-9.2.2.tar.gz
http://blog.chinaunix.net/u/8983/showart.php?id=55609
http://www.unix206.com/8/166189.html
scp命令
scp命令是SSH中最方便有用的命令了,试想,在两台服务器之间直接 传送文件,仅仅用scp一个命令就完全解决了。 你可以在一台服务器上 以root身份运行#scp servername:/home/ftp/pub/file1 . 这样就把另 一台服务器上的文件/home/ftp/pub/file1直接传到本机器的当前目录下,当然你也可以用#scp /tmp/file2 servername:/boot 把本机上的文件/tmp/file2送到另一台机器的/boot目录下。而且整个传送过程仍然是 用SSH加密的。