rsync远程同步详解

本文详细介绍了rsync的远程同步和实时同步配置。在远程同步中,讲解了rsync作为备份工具的功能,配置包括uid/gid、chroot、监听地址等,并展示了客户端和服务器端的同步命令。实时同步部分,通过结合inotify机制,实现文件变化时的即时备份,配置包括服务端的内核参数调整和客户端的inotify-tools工具使用。
摘要由CSDN通过智能技术生成

目录

一,remote sync,远程同步

配置rsync远程同步

二,rsync实时同步

配置实时同步


一,remote sync,远程同步

是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

 

配置rsync远程同步

环境准备:

rsync同步源:192.168.18.91

rsync客户机:192.168.18.109

关闭防火墙和selinux(两台都需要此操作)

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

源服务器配置:

[root@localhost ~]# rpm -q rsync  ##查看是否安装软件
rsync-3.0.9-18.el7.x86_64
[root@localhost ~]# vim /etc/rsyncd.conf  ##配置配置文件
uid = nobody
gid = nobody
use chroot = yes
pid file = /var/run/rsyncd.pid
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
address = 192.168.18.91
port = 873
log file = /var/log/rsycd.log
hosts allow = 192.168.18.0/24

[ftp]
path = /var/www/html
comment = web service
read only = yes
auth users = backuper
secrets file = /etc/rsyncd_users.db

各字段含义:

uid = nobody
gid = nobody
use chroot = yes                         #禁锢在源目录
address = 192.168.18.91           #监听地址
port 873                                      #监听端口号 tcp/udp 873
log file = /var/log/rsyncd.log       #日志地址
pid file = /var/run/rsyncd.pid      #存放进程ID的文件位置
hosts allow = 192.168.18.0/24  #允许访问的客户机地址

[ftp]                                      #共享模块名称
path = /home/ftp                  #原目录实际路径
comment = ftp export area   #备注
read only = yes                    #是否只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z    #同步时不再压缩的文件类型
auth users = backuper    #授权账户,多个账号以空格分隔
secrets file = /etc/rsyncd_users.db    #存放账户信息的数据文件

如果采用匿名的方式,只要将其中的“auth users” 和“secrets file” 配置项去掉即可

为备份账户创建数据文件

[root@localhost ~]# vim /etc/rsyncd_users.db 

backuper:123123
##账户:密码  格式用分号隔开


[root@localhost ~]# chmod 600 /etc/rsyncd_users.db   ##权限一定要600

给需同步的的目录权限。并开启服务

[root@localhost ~]# chmod -R 777 /var/www/html/
[root@localhost ~]# rsync --daemon
[root@localhost ~]# ss -natp|grep rsync
tcp        0      0 192.168.18.91:873       0.0.0.0:*              
 LISTEN      24382/rsync  

服务端

为了减轻多服务器配置和操作工作量以及安全性,特研究此课题,理论上可以同步所有想同步的文件,并且做到一键操作,不需要切换用户,不需要多次操作脚本,中途不需要输入任何字。 1, hosts文件 2, play.yml文件 剧本文件,按标准放到tasks文件夹内,因后面脚本写了路径,如果不愿意放tasks文件夹,需要改后面sh脚本路径参数 3, rsync_notice.py文件 钉钉机器人发送消息文件,此文件放在tools文件夹内,会调用备份日志进行分析,过滤后,发送到钉钉群内。各位同事可修改文件里的Webhoo为自己的机器人key 4, deploy.sh 文件 调用py钉钉文件发消息,并且处理备份日志,删除近期日志等后续事宜,请放在tools文件夹内 1.3.3. 功能基本介绍 1, 在对应脚本里基本都有注释,这里简单介绍下 2, 剧本文件需要在主控机器(备份机器),root用户下运行,运行一次即可,后续sh及py脚本会自动处理。一键搞定所有事情,中途无需手动干预; 3, 自行修改host文件为自己项目地址,bak为备份文件服务器,为安全起见,hosts文件进行了vault加密,密码123456,运行剧本文件,请加—ask-vault-pass 4, 再次提醒,在脚本运行完成后,为保险起见,可将hosts文件中的root密码删除,或修改复杂密码,不会影响后续同步功能。 5, 剧本流程介绍: 1) 主控被控端安装rsync及相关依赖软件; 2) 主控与被控端添加备份用户,rsync; 3) 主控端即备份服务器建立备份文件夹,设置归属用户; 4) 主控及被控端自动切换rsync用户,使用rsync用户配置免密访问所有被控端,即便服务器被黑,rsync用户访问也做不了什么; 5) 主控端即备份服务器使用rsync用户增加同步、日志记录、钉钉发送消息等定时任务; 6) 定时任务里各个需要同步的源地址及项目名称,请自行修改; 7) 日志为叠加记录,钉钉消息发完后,会按日期进行备份,同时删除原日志,因为钉钉消息每天都发,避免冗余数据; 6, 钉钉消息脚本介绍: 1) 访问实时备份日志,考虑到钉钉消息,只需要知道同步是否成功,其余数据不关心,所以读取后,进行数据处理,取出服务器地址、成功标识,或未成功标识; 2) 调用钉钉机器人接口,采取markdown形式,此形式可以定义一个固定的标题,比如:rsync同步情况汇总,这样在钉钉机器人安全设置里,只需要将标题设为关键字即可,具体发送内容千奇百怪也没关系。另外两种方式各有弊端,未研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值