Linux服务器利用rsync+inotify-tools实时同步备份 – rsync配置篇

技术分享评论字数 2466阅读模式

大鸟这几天利用工作闲暇时间继续研究Linux VPS、服务器的备份事宜,因为公司后期的项目可能会增加,原本数据较少采用手工定时备份和服务器自带备份(公司大部分项目转向阿里云采用自动快照备份),后期可能需要用到同步数据备份,要不万一出问题全部恢复快照比较麻烦,所以准备采用rsync同步备份。

之前大鸟也有整理分享过rsync同步服务器备份的文章(配置Rsync定时同步增量备份Linux VPS网站文件 - 服务器端篇配置Rsync定时同步增量备份Linux VPS网站文件 - 备份服务器端篇),但是那时候就看到有不小的问题,对于小数据来说单独用rsync问题不是很大,但是大数据会导致负载加重,每次同步的时候都会全局检索所有文件比对,再进行差量传输,如果百万、千万级数据效率肯定低,同时rsync单独备份采用定时同步,并不是实时的,万一问题就在这个时间差里就要出问题了。

通过网上的文档继续学习,提到使用inotify-tools结合rsync进行同步实时备份,inotify,一个强大的、细粒度的、异步的文件系统事件控制机制。通过inotify监控文件系统中添加、删除、修改、移动等各种事件。这样就不需要使用定时机制,而自动采用同步实时备份,效率较高。

Linux服务器利用rsync+inotify-tools实时同步备份 – rsync配置篇

同样的,鉴于内容的完整性以及可能涉及的复杂度,大鸟准备将rsync+inotify-tools备份文章也分两篇文章整理,这篇文章主要是在主服务器和备份服务器中部署Rsync可以实现同步效果。

第一、rsync+inotify-tools准备工作

1、准备两台服务器这里大鸟用两台CentOS6 64bit作为测试机,A主服务器(IP:11.11.11.11)、B备份服务器(IP:22.22.22.22);

2、备份目标,需要将A主服务器/home/daniao.org数据备份到B备份服务器/home/backup目录中;

3、防火墙设置,我们需要检查两台服务器的防火墙。如果有设置防火墙则需要关闭SELINUX且开启Rsync默认873端口。

a - SELINUX禁止(/etc/selinux/config)

Linux服务器利用rsync+inotify-tools实时同步备份 – rsync配置篇

b - 防火墙开启873端口

iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT

添加之后需要重启iptables才生效(/etc/init.d/iptables restart)。如果我们没有设置iptables那就不需要设置端口,有些人都全开着。

第二、配置备份服务器rsync

无论是A主服务器,还是B备份服务器或者其他多个备份服务器,我们都需要配置rsync环境的。我们这里先来配置备份服务器。

1、安装rsync

yum install rsync xinetd -y

2、配置/etc/xinetd.d/rsync

Linux服务器利用rsync+inotify-tools实时同步备份 – rsync配置篇

这里我们将文件中的参数disable修改成no,后保存退出。

3、创建rsyncd.conf文件和参数设置

vi /etc/rsyncd.conf

创建配置文件,然后复制下面参数,已经对应自己修改。

#默认不需要修改

log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
motd file = /etc/rsyncd.Motd

#模块名称任意,但需要一致
[www.daniao.org]

#备份服务器路径
path = /home/backup

#对应上面模块名称
comment = www.daniao.org

#默认不要修改
uid = root
gid = root
port=873
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600

#创建一个用户名称,需要保持后面还有的名称一致
auth users = www.daniao.org_user

#主服务器IP地址
hosts allow = 11.11.11.11

4、创建rsync.pass文件

vi /etc/rsync.pass

创建密码配置文件,加入下面一行

www.daniao.org_user:1234567890

格式要一致,中间是:隔开,前面是我们上面文件的用户名称,后面密码随意,后续我们需要一致。

5、设置配置文件权限

chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsync.pass

6、重新启动rsync

service xinetd restart

第三、主服务器配置rsync

一般我们的CentOS6服务器默认是已经安装rsync的,不管这些了,我们重新安装即可。到主服务器中,我们一样需要安装rsync。

1、安装rsync

yum install rsync xinetd -y

2、配置/etc/xinetd.d/rsync

Linux服务器利用rsync+inotify-tools实时同步备份 – rsync配置篇

这里我们将文件中的参数disable修改成no,后保存退出。

3、创建密钥匹配文件

vi /etc/passwd.txt

里面输入我们上面备份服务器中一致的密码1234567890,然后保存退出。

4、授权配置权限

chmod 600 /etc/passwd.txt

这个时候我们2台服务器已经配置完毕,我们需要检测rsync是否可以同步。

第四、手动检测rsync是否同步

我们在主服务器中/home/daniao.org目录中先放几个文件,同时确保备份服务器中/home/backup目录存在,然后执行脚本检测是否成功。

rsync -avH --port=873 --progress --delete /home/daniao.org www.daniao.org_user@22.22.22.22::www.daniao.org --password-file=/etc/passwd.txt

这里大鸟操作执行后是没有问题的,说明rsync配置没有问题,第一部分还算顺利(其实在完成文章撰写之前已经琢磨好几天)。后续再更新配置inotify-tools自动实时同步的过程。

weinxin
我的微信
微信公众号
关注大鸟博客公众号
 
大鸟
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定