默认情况下,备份之后原来的机器上存在的数据是不会丢失的
无差异数据复制:rsync在拉取数据的时候加上 --delete。只要机器A的数据,不需要机器B的数据
实现这种无差异数据复制,主要是使用rsync的参数--delete
所谓的无差异复制,指的是 无论是数据的拉取还是推送,都高度保持两边文件夹数据的一致性,也就是会删除其他多余的文件信息
1、本地式数据删除
我们可以利用rsync保证两个文件夹的内容数据一致性,本地的操作
(1) 保证 /my_rsync/myweb 目录和 /my_rsync/backup 目录内容的一致性
把backup文件同步到myweb并且删除myweb自己的文件
rsync -avzP --delete backup/ myweb/
[root@yuweijie my_rsync]# tree
.
├── backup
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── myweb
├── a.html
├── b.html
├── c.html
├── d.html
└── e.html
[root@yuweijie my_rsync]# tree
.
├── backup
│ ├── 1.txt
│ ├── 2.txt
│ ├── 3.txt
│ ├── 4.txt
│ └── 5.txt
└── myweb
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
└── 5.txt
2、远程的两台机器,数据同步一致性
(1)数据无差异拉取,保证客户端本地和rsync服务端的数据一致
该命令有一定的危险性,需要确保文件是否必须要删除
rsync -avzP --delete rsync_backup@192.168.178.122::backup .
[root@yuweijie my_rsync]# ls
1.txt 2.txt 3.txt
[root@yuweijie my_rsync]# rsync -avzP --delete rsync_backup@192.168.178.122::backup .
receiving incremental file list
deleting 3.txt
deleting 2.txt
deleting 1.txt
./
a.html
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4)
b.html
0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=1/4)
c.html
0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=0/4)
sent 84 bytes received 222 bytes 612.00 bytes/sec
total size is 0 speedup is 0.00
[root@yuweijie my_rsync]# ls
a.html b.html c.html
(2)数据无差异的推送,这个命令很危险,可能会误删备份服务器上的数据,注意参数的使用
rsync -avzP --delete /my_rsync/ rsync_backup@192.168.178.122::backup
[root@yuweijie my_rsync]# ls
a.py b.py c.py d.py e.py f.py g.py
[root@yuweijie my_rsync]# rsync -avzP --delete /my_rsync/ rsync_backup@192.168.178.122::backup
sending incremental file list
deleting c.html
deleting b.html
deleting a.html
./
a.py
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=6/8)
b.py
0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=5/8)
c.py
0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=4/8)
d.py
0 100% 0.00kB/s 0:00:00 (xfr#4, to-chk=3/8)
e.py
0 100% 0.00kB/s 0:00:00 (xfr#5, to-chk=2/8)
f.py
0 100% 0.00kB/s 0:00:00 (xfr#6, to-chk=1/8)
g.py
0 100% 0.00kB/s 0:00:00 (xfr#7, to-chk=0/8)
sent 430 bytes received 182 bytes 1,224.00 bytes/sec
total size is 0 speedup is 0.00
--delete参数总结
rsync推送场景:数据备份,上传
本地有的资料,上传的情况下,一般不使用--delete参数,除非是NFS服务的实时同步,可能会要求客户端和服务端数据完全一致性
rsync拉取场景,代码下载,代码的发布
rsync无差异同步,还可以用于负载均衡下的,web服务器数据无差异同步
网友评论