Rsync增量同步

1.  环境规划:

主机名主机地址角色
node1192.168.56.111rsync-server
node2192.168.56.112rsync-client

2.  两个节点安装rsync:

[root@node1 ~]# yum install rsync -y

3.  配置rsync服务端:

[root@node1 ~]# vim /etc/rsyncd.conf

uid = rsync  ##用户id
gid = rsync  ##组id

use chroot = no
max connections = 200
timeout = 300
fake super = yes

pid file = /var/run/rsyncd.pid  ##进程号文件位置
lock file = /var/run/rsync.lock  ##进程锁文件位置
log file = /var/log/rsyncd.log  ##日志文件位置

##资源名称
[tools]
  comment = test data  ##资源提示信息
  path = /testdata/  ##同步数据的目录
  ignore errors  
  read only = false  ##是否为只读模式(true为只读,false为可读可写)
  list = false
  hosts allow = 192.168.56.0/24  ##允许访问的ip
  hosts deny = 0.0.0.0/32  ##拒绝访问的ip
  auth users = rsync_backup  ##虚拟用户
  secrets file = /etc/rsyncd.passwd  ##存放用户和密码的文件

4.  创建启动服务时所需的资源:

[root@node1 ~]# mkdir /testdata  ##创建数据同步的目录

[root@node1 ~]# useradd -s /sbin/nologin -M rsync  ##创建用户
 
[root@node1 ~]# chown -R rsync:rsync /testdata/  ##修改目录属主属组

[root@node1 ~]# echo "rsync_backup:123456" >> /etc/rsyncd.passwd  ##创建用户和密码文件

[root@node1 ~]# chmod 600 /etc/rsyncd.passwd  ##修改文件权限

5.  启动rsync:

[root@node1 ~]# systemctl start rsyncd

[root@node1 ~]# systemctl status rsyncd

6.  客户端准备同步的文件:

[root@node2 ~]# mkdir /testdata

[root@node2 ~]# cd /testdata/

[root@node2 testdata]# echo "test1" > test1.txt
[root@node2 testdata]# echo "test2" > test2.txt
[root@node2 testdata]# echo "test3" > test3.txt

7.  同步文件:同步目录时,若以" / "结尾则表示同步目录下所有文件,不会连同目录一起同步;若不以" / "结尾则表示同步目录下所有文件并且会连同目录一起同步。

[root@node2 testdata]# rsync -avz /testdata/*.txt rsync_backup@node1::tools(资源名)
Password: 
sending incremental file list
test1.txt
test2.txt
test3.txt

sent 234 bytes  received 81 bytes  70.00 bytes/sec
total size is 18  speedup is 0.06


[root@node1 ~]# ls /testdata/
test1.txt  test2.txt  test3.txt

rsync选项及功能:

选项功能
-a归档模式,表示以递归方式传输时,保持所有文件属性
-v显示同步过程的信息,比如文件列表、文件数量等。
-z在传输文件的同时进行压缩
-P显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
-p表示保持文件权限。
-r表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。
--progress表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。
--password-file指定密码文件

8.  测试增量同步:

[root@node2 testdata]# echo "11111" >> test1.txt

[root@node2 testdata]# rsync -avz /testdata/*.txt rsync_backup@node1::tools
Password: 
sending incremental file list
test1.txt

sent 147 bytes  received 49 bytes  78.40 bytes/sec
total size is 24  speedup is 0.12

[root@node1 ~]# cat /testdata/test1.txt 
test1
11111

9.  同步时排除指定文件:

[root@node2 testdata]# echo "test.log" > test.log
[root@node2 testdata]# echo "test2.log" > test2.log 
[root@node2 testdata]# echo "test.conf" > test.conf

##要排除的文件信息
[root@node2 testdata]# vim /etc/exclude

*.log

[root@node2 testdata]# rsync -avz --exclude-from=/etc/exclude /testdata/* rsync_backup@node1::tools
Password: 
sending incremental file list
test.conf

sent 168 bytes  received 43 bytes  84.40 bytes/sec
total size is 34  speedup is 0.16

[root@node2 testdata]# echo "test2.conf" > test2.conf

[root@node2 testdata]# rsync -avz --exclude=*.log /testdata/* rsync_backup@node1::tools
Password: 
sending incremental file list
test2.conf

sent 189 bytes  received 43 bytes  66.29 bytes/sec
total size is 45  speedup is 0.19

[root@node1 ~]# ls /testdata/
test1.txt  test2.conf  test2.txt  test3.txt  test.conf

选项:--exclude-from=FILE:以文件方式指定同步要排除的文件,可以一次排除多个文件。
      --exclude=*.log:指定同步要排除的文件,一次只能指定一个文件。

10.  无差异同步:使用" --delete "参数,一般用于两台负载均衡下面的web服务器之间的同步,或者高可用双机配置直接的同步等。rsync无差异同步选项一定要慎用

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值