1.scp
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,它使用ssh安全协议传输数据。
scp系统开消小不占资源,不会提高多少系统负荷。虽然 rsync只传送修改的部分。
1.1 命令格式:
scp [参数] [原路径] [目标路径]
1.2 复制文件:
scp 本地文件名 远端用户名@远端主机IP:新文件名
scp /test.txt root@172.16.70.71:/home/newtest.txt
1.3 复制目录:(复制目录要参数-r)
scp -r local_folder remote_username@remote_ip:remote_folder
scp -rp /data root@172.16.70.71:/home #-r 递归复制整个目录,-p保留原文件的修改时间,访问时间和访问权限
1.4 从远程服务器复制到本地服务器:
从远程复制到本地,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
1.5 命令参数:
-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)的选项。
1.6 案例实操
1.6.1 将hadoop101中/opt/module目录下的软件拷贝到hadoop102上。
[luomk@hadoop101 /]$ scp -r /opt/module/* luomk@hadoop102:/opt/module
1.6.2 将hadoop101服务器上的/opt/module目录下的软件拷贝到hadoop103上。
[luomk@hadoop103 opt]$ scp -r luomk@hadoop101:/opt/module/* hadoop103:/opt/module
1.6.3 在hadoop103上操作将hadoop101中/opt/module目录下的软件拷贝到hadoop104上。
[luomk@hadoop103 opt]$ scp -r hadoop101:/opt/module/* hadoop104:/opt/module
2.rsync
rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。
rsync是一个数据镜像及备份工具,具有可使本地和远程两台主机的文件,目录之间,快速同步镜像,远程数据备份等功能。在同步过程中,rsync是根据自己独特的算法,只同步有变化的文件,甚至在一个文件里只同步有变化的部分,所以可以实现快速的同步数据的功能。
2.1 查看rsync使用说明
man rsync | more
2.2 基本语法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
命令 命令参数 要拷贝的文件路径/名称 目的用户@主机:目的路径
2.3 选项说明
选项 | 功能 |
-r | 递归 |
-v | 显示复制过程 |
-l | 拷贝符号连接 |
2.4 案例实操
把本机/opt/software目录同步到hadoop102服务器的root用户下的/opt/目录
[luomk@hadoop101 opt]$ rsync -rvl /opt/software/* hadoop102:/opt/software/