转载自:http://www.vpser.net/manage/scp.html
一、scp是什么?
scp是secure copy的简写,用于在Linux下进行远程拷贝文件,scp传输是加密的,数据传输使用 ssh1, 并且和 ssh1 使用相同的认证方式,提供相同的安全保证。与rcp不同的是,scp会要求你输入密码。
二、scp有什么用?
1、我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的。
2、我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无法通过常规途径上传是,只需要通过scp命令便可以轻松的达到目的。
三、scp使用方法
1、获取远程服务器上的文件
scp root@host_ip:/root/tmp.log /home/tmp.log
root@host_ip 表示使用root用户登录远程服务器host_ip;
:/root/tmp.log 表示远程服务器上的文件;
/home/tmp.log 表示保存在本地上的路径和文件名;
2、获取远程服务器上的目录
scp -r root@host_ip:/root/tmp/ /home/tmp/
-r 参数表示递归复制(即复制该目录下面的文件和目录);
注意,传输文件夹时,要使用 -r 参数,不然会出现"not a regular file"错误!!
:/root/tmp/ 表示远程服务器上的目录;
/home/tmp/ 表示保存在本地上的路径;
3、将本地文件上传到服务器上
scp /home/tmp.log root@host_ip:/root/tmp.log
/home/tmp.log 表示本地上准备上传文件的路径和文件名;
:/root/tmp.log 表示保存在远程服务器上目录和文件名;
4、将本地目录上传到服务器上
scp -P 2222 -r /home/tmp/ root@host_ip:/root/tmp/
/home/tmp/ 表示准备要上传的目录;
5、可能有用的几个参数 :
-v 和大多数linux命令中的-v意思一样,用来显示进度,可以用来查看连接,认证,或是配置错误;
-C 使能压缩选项;
-4 强行使用IPV4地址;
-6 强行使用IPV6地址;
-P 选择端口,注意-p已经被rcp使用;
-r 递归查找;
注意:
使用scp传输“文件夹”时,出现 not a regular file;其原因是传输文件夹时没有加参数-r 导致。
所以在传输文件夹的时候,要使用 scp -r folder_dir user@host:folder_dir 来传输!!!