您的位置:首页 > 运维架构 > Linux

Linux scp命令详解

2016-05-08 13:28 302 查看
1、命令:scp
不同的Linux之间copy文件常用有3种方法:
第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。
第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。
第三种就是利用scp命令来进行文件复制。

2、命令格式:scp [参数] [原路径] [目标路径]

3、命令参数:

-1  强制scp命令使用协议ssh1
-2  强制scp命令使用协议ssh2
-4  强制scp命令只使用IPv4寻址
-6  强制scp命令只使用IPv6寻址
-B  使用批处理模式(传输过程中不询问传输口令或短语)
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p  保留原文件的修改时间,访问时间和访问权限。
-q  不显示传输进度条。
-r  递归复制整个目录。
-v  详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c  cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F  ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i  identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l  limit  限定用户所能使用的带宽,以Kbit/s为单位。
-o  ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,
-P  port  注意是大写的P, port是指定数据传输用到的端口号
-S  program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。


4、实例

将当前Linux中的hadoop文件夹拷贝到Hadoop-NN-02下:

scp -P 6000 -r /home/hadoopuser/hadoop hadoopuser@Hadoop-NN-02:/home/hadoopuser


-P 6000 表示SSH登录端口为6000,默认22端口可省略。

-r 表示递归复制

注:从远程复制到本地,只需调换scp后面两个参数即可。

5、scp免密码拷贝expect脚本

#!/usr/bin/expect -f
set password 123456
spawn scp root@192.168.0.10:/root/a.wmv /home/hadoop/
set timeout 300
expect "root@192.168.0.10's password:"
set timeout 300
send "$password\r"
set timeout 300
send "exit\r"
expect eof
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: