Linux命令之远程文件传输-scp

转载自: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 表示保存在本地上的路径和文件名;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、获取远程服务器上的目录

scp -r root@host_ip:/root/tmp/ /home/tmp/
  • 1
-r 参数表示递归复制(即复制该目录下面的文件和目录);

注意,传输文件夹时,要使用 -r 参数,不然会出现"not a regular file"错误!!

:/root/tmp/ 表示远程服务器上的目录;

/home/tmp/ 表示保存在本地上的路径;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、将本地文件上传到服务器上

scp /home/tmp.log root@host_ip:/root/tmp.log

/home/tmp.log 表示本地上准备上传文件的路径和文件名;

:/root/tmp.log 表示保存在远程服务器上目录和文件名;
  • 1
  • 2
  • 3
  • 4
  • 5

4、将本地目录上传到服务器上

scp -P 2222 -r /home/tmp/ root@host_ip:/root/tmp/

/home/tmp/ 表示准备要上传的目录;
  • 1
  • 2
  • 3

5、可能有用的几个参数 :

-v 和大多数linux命令中的-v意思一样,用来显示进度,可以用来查看连接,认证,或是配置错误;

-C 使能压缩选项;

-4 强行使用IPV4地址;

-6 强行使用IPV6地址;

-P 选择端口,注意-p已经被rcp使用;
-r 递归查找;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意:

使用scp传输“文件夹”时,出现 not a regular file;其原因是传输文件夹时没有加参数-r 导致。

所以在传输文件夹的时候,要使用 scp -r folder_dir user@host:folder_dir 来传输!!!

猜你喜欢

转载自blog.csdn.net/sky_jiangcheng/article/details/80727450