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 [email protected]:/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 "[email protected]‘s password:" set timeout 300 send "$password\r" set timeout 300 send "exit\r" expect eof
时间: 2024-10-24 11:02:58