scp

在不同的linux主机间复制文件

带有Security的文件copy,基于ssh登录。



有些linux发行版没有自带scp,因此需要安装scp,以下为centos下安装方法

#  yum -y install openssh-clients



基本语法: 

# scp [参数] source target



常见参数 

-v :显示进度,可以用来查看连接、认证或是配置错误

-r :赋值目录

-C :使能压缩选项 

-P :选择端口

-4 :强行使用 IPV4 地址

-6 :强行使用 IPV6 地址



常见的使用方式:

1、将本地复制到远程

格式:

1.1 # scp local_file remote_username@remote_ip:remote_folder

1.2 # scp local_file remote_username@remote_ip:remote_folder/remote_file

1.3 # scp local_file remote_ip:remote_folder

1.4 # scp local_file remote_ip:remote_folder/remote_file


格式说明:

1.1和1.2指定了用户名,命令执行后需要输入远程服务器的密码

1.3和1.4未指定用户名,命令执行后需要输入远程服务器的用户名以及密码

1.1和1.3仅指定了远程的目录,文件名字不变

1.2和1.4指定了远程的目录以及文件名


例子: 

# scp /doiido/hello.sh [email protected]:/doiido
# scp /doiido/hello.sh [email protected]:/doiido/newhello.sh
# scp /doiido/hello.sh 192.168.100.2:/doiido
# scp /doiido/hello.sh 192.168.100.2:/doiido/newhello.sh



2、将远程的复制到本地

从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,由于语法一样,这里就只列出例子; 

# scp [email protected]:/doiido /doiido/hello.sh
# scp [email protected]:/doiido/hello.sh /doiido/newhello.sh
# scp 192.168.100.2:/doiido  /doiido/hello.sh
# scp 192.168.100.2:/doiido/hello.sh /doiido/newhello.sh



3、复制目录

当需要传输目录的时候,仅需要加上参数-r即可以,例如

# scp -r /doiido/hello/ [email protected]:/doiido/



4、注意:

4.1:如果远程服务器修改了ssh端口,scp则需要使用修改后的端口,如远程服务器ssh端口为2222,则需加-P参数:

# scp -p 2222 /doiido/hello.sh [email protected]:/doiido


4.2:在使用scp之前,需要确认远程连接的用户是否具有读取远程服务器相应文件的权限。

  同时还需要注意,执行scp这条指令的用户是否具有本地相应目录的权限。