当前位置: 首页 > 工具软件 > 复制增量 > 使用案例 >

Linux之rsync增量拷贝工具

燕扬
2023-12-01

简述

scp 是安全拷贝工具.是全量复制.
全量复制的意思是会给你目录里面所有的东西全部复制过来,即便你目录在第一次复制之后没有做任何的修改,第二次执行的时候还是给你指定的目录全部复制过来,所以scp是全量复制.

比如说我的hello目录下的文件们比较大,我之前已经全部复制到另外一台机器上了,但是后来我因为业务调整,我hello的某个文件又进行了小的修改,我希望你在复制的时候只是给修改过的文件复制到另外一台机器上,也就是增量的复制,此时scp就不适合了.就需要用rsync工具了.

rsync工具只能将本机的文件同步到其它的机器上.

rsync特点

rsync可以只是同步变化的文件,也就是增量同步.

怎么区别你是变化的文件?一般情况下是对比文件的修改时间,如果两个机器上的同一个路径下的同一个文件名的文件修改时间不一样的话,rsync就认为文件已经变化了.

使用命令说明

	 rsync -rvlt   path1    目标文件用户名B@主机名2:path2
 **说明**
	-r: 递归,复制目录
	-v: 显示复制的过程
	-l:  同步软连接
	-t:  基于文件的修改时间进行对比,只同步修改时间不同的文件

	path1     是本机文件目录.

注意目录斜杠问题

注意: rsync -rvlt path1 目标文件用户名B@主机名2:path2

path1是个目录,目录以/结尾,只会同步目录中的内容,不会同步目录本身!
path1是个目录,目录不以/结尾,同步目录中的内容,也会同步目录本身!
下面有案例可以看一下加和不加的区别.

案例

安装插件

同步的机器需要安装插件,被同步的机器也需要安装插件

zjj101 和 zjj102 分别安装这个插件
shell:

yum -y install rsync

如果不安装这个插件的话会在输入目标服务器的密码之后会报错,就是下面的错误.

bash: rsync: 未找到命令
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

准备数据

zjj101

[root@zjj101 demo]# pwd
/root/soft/demo
[root@zjj101 demo]# ll
总用量 0
-rw-r--r--. 1 root root 0 10月 14 19:31 demoSCP.txt
[root@zjj101 demo]# 

zjj102

[root@zjj102 soft]# pwd
/root/soft
[root@zjj102 soft]# ls
hadoop-2.7.2

开始同步

起始目录路径末尾加斜杠

[root@zjj101 demo]# rsync -rvlt /root/soft/demo/     root@zjj102:/root/soft
root@zjj102's password: 
sending incremental file list
./
demoSCP.txt

sent 110 bytes  received 38 bytes  59.20 bytes/sec
total size is 0  speedup is 0.00
[root@zjj101 demo]# 

查看 zjj102机器
此时再 soft目录下生成了

[root@zjj102 soft]# ls
demoSCP.txt  hadoop-2.7.2
[root@zjj102 soft]# pwd
/root/soft
[root@zjj102 soft]# 

起始目录路径末尾不加斜杠

zjj101

[root@zjj101 demo]# rsync -rvlt /root/soft/demo     root@zjj102:/root/soft 
root@zjj102's password: 
sending incremental file list
demo/
demo/demoSCP.txt

sent 123 bytes  received 39 bytes  64.80 bytes/sec
total size is 0  speedup is 0.00
[root@zjj101 demo]# 

zjj102机器

给demo文件夹删除掉重新测试后的效果.

[root@zjj102 soft]# ls
demo  hadoop-2.7.2
[root@zjj102 soft]# pwd
/root/soft
[root@zjj102 soft]#  cd demo
[root@zjj102 demo]# ls
demoSCP.txt
[root@zjj102 demo]#  pwd
/root/soft/demo
[root@zjj102 demo]# 

连着demo文件夹也同步过去了

 类似资料: