Linux系统下数据同步服务rsync
1、什么是rsync
(1)rsync的好姐妹
1)sync 同步:刷新⽂件系统缓存,强制将修改过的数据块写⼊磁盘,并且更新超级块。
2)async 异步:将数据先放到缓冲区,再周期性(⼀般是30s)的去同步到磁盘。
3)rsync 远程同步:==remote synchronous==
(2)数据同步过程
1)sync数据同步 => 保存⽂件(⽬标)=> 强制把缓存中的数据写⼊磁盘(⽴即保存),实时性要求⽐较⾼的场景
2)asyn数据异步 => 保存⽂件(⽬标)=> 将数据先放到缓冲区,再周期性(⼀般是30s)的去同步到磁盘,适合⼤批量数据同步的场景
2、rsync特点
1)可以镜像保存整个⽬录树和⽂件系统
2)可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬链接,⽂件acl,⽂件属性(attributes)信息等
3)传输==效率⾼==,使⽤同步算法,只⽐较变化的(增量备份)file1.txt file2.txt file3.txt(A服务器)
rsync实现数据同步 => 只同步file3.txt => 增量备份
file1.txt file2.txt(B服务器)
4)⽀持匿名传输,⽅便⽹站镜像;也可以做验证,加强安全
3、rsync与scp的区别
两者都可以实现远程同步,但是相对⽐⽽⾔,rsync能⼒更强
① ⽀持增量备份
② 数据同步时保持⽂件的原有属性
rsync :linux系统下数据同步服务
[root@13 ~]# yum -y install rsync [root@13 ~]# which rsync /usr/bin/rsync
在家目录中创建一些文件,将文件同步到opt下
如果源目录不以 / 结尾,整个目录同步包含目录文件,带 / 结尾,只同步目录下文件
[root@13 ~]# mkdir folder [root@13 ~]# mkdir folder/f{1..3} [root@13 ~]# tree folder/ folder/ ├── f1 ├── f2 └── f3 3 directories, 0 files [root@13 ~]# touch folder/f1/file{0..4} [root@13 ~]# tree folder/ folder/ ├── f1 │ ├── file0 │ ├── file1 │ ├── file2 │ ├── file3 │ └── file4 ├── f2 └── f3 3 directories, 5 files [root@13 ~]#
将folder 目录下的文件传到opt
[root@13 ~]# rsync -av folder/ /opt/ sending incremental file list ./ f1/ f1/file0 f1/file1 f1/file2 f1/file3 f1/file4 f2/ f3/ sent 397 bytes received 130 bytes 1,054.00 bytes/sec total size is 0 speedup is 0.00 [root@13 ~]#
实现
[root@13 ~]# rsync -avR folder/ /opt/ sending incremental file list folder/ folder/f1/ folder/f1/file0 folder/f1/file1 folder/f1/file2 folder/f1/file3 folder/f1/file4 folder/f2/ folder/f2/file0 folder/f2/file1 folder/f2/file2 folder/f2/file3 folder/f2/file4 folder/f3/ sent 686 bytes received 226 bytes 1,824.00 bytes/sec total size is 0 speedup is 0.00 [root@13 ~]# tree /opt/ /opt/ ├── f1 │ ├── file0 │ ├── file1 │ ├── file2 │ ├── file3 │ └── file4 ├── f2 ├── f3 ├── folder │ ├── f1 │ │ ├── file0 │ │ ├── file1 │ │ ├── file2 │ │ ├── file3 │ │ └── file4 │ ├── f2 │ │ ├── file0 │ │ ├── file1 │ │ ├── file2 │ │ ├── file3 │ │ └── file4 │ └── f3 └── test ├── a │ ├── abc.txt │ ├── def.txt │ └── ghi.txt ├── abc.txt ├── def.txt └── ghi.txt 9 directories, 21 files [root@13 ~]# rsync -av folder/f1/ folder/f2/ sending incremental file list ./ file0 file1 file2 file3 file4 sent 314 bytes received 114 bytes 856.00 bytes/sec total size is 0 speedup is 0.00 [root@13 ~]#
文件修改也会被rsync 同步
[root@13 ~]# vim folder/f1/file1 [root@13 ~]# rsync -av --delete folder/f1/ folder/f2/ sending incremental file list ./ file1 sent 182 bytes received 38 bytes 440.00 bytes/sec total size is 12 speedup is 0.05 [root@13 ~]#
rsync可以同步文件内容修改,文件的删除,以及文件的属性修改
向14主机 /tmp目录同步数据
[root@13 ~]# rsync -av folder/ root@192