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

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

之前云计算优惠也有整理分享过rsync同步服务器备份的文章(配置Rsync定时同V t L X 6步增量备份LO Y ] d G Qinux VPS网站文件 - 服务器端篇和配置Rsync定时同步增量备份Linux VPS网站文件 - 备份服务器端篇),但是那时候就看到有不小的问题,对于小数据来说单独用rsync问题不是很大,但是大数据会导致z e G I负载加重,每次同步的时候都会全局检索所有文件比对,再进行差量传输,如果百万、千万级数据效A G t g率肯定低,同X C %时rsync单独备份采用定时同步,并不是[ } !实时的,万一问题就在这个时间差里就要出问题了。

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

同样的,鉴于内容的完整性以及可/ ) X 2 %能涉及的复, ! ! n # z v c l杂度,云计算优惠准备将rsync+inotify-tools备份文章也分两篇文章整理,这篇文章主要是在主服务器和备份服务器中部署Rsync可以实现同步效果。

文章目录
隐藏V 2 . f
第一、rsync+inotify-tools准备工作

第二、配置备份Y c V b P 5 y r 8服务器rsync

第三、主服务器配置rsync

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

第一、rsyncN D ~ B c+inotify-tools准备工作

1、准备两台服务器这里云计算优惠用两台CentOS , U 6 f } M %6 64bit作为测试机,A主服务器(IP:11.11.11.11)、B备份服务器(IP:22.22.22.22);

2、备份目标,需要将A主服务器Q o | K l/home/itbulu.com数据备份到B备份服务器/home/backup目录中;

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

a - SELI^ u x %NUX禁止(/etc/selinux/cB I D u -onfig)

b - 防火墙开启873端口

iptables -AH u t X + @ ` ; r INPUT -p tcp -m state --statX M P w : & $e NEW) F # h j w c & = -m tcp --dpo} P ( f prt 873 -j ACCE{ V t n q pPT

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

第二、配置备份服务器rh n x Ssync

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

1_ 8 U、安装rsync

yum insta= p & , % %ll rsynH ` n 6 | . n Xc xinetd -y

2、配置/# B K % l 0etc/ q C + ! _/xinetd.d/rsync

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

3、创建rsy! 4 Q jncd.conf文件和参数设置

vi /etc/rsyncd.co, 1 ^ l | Qnf

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

#默认不需要修改[ x p i R 1 ?

logE = D M Z file = /var/log/rsyncd.log
pidfile = /var/r8 [ 6 ~ 3 ! ~un/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
motd file = /etc/rsyncd/ $ v R K W c 1 N.Motd

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

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

#对应上面模块名称
comment = www.itbulu.com9 l J e N m

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

#创建一个用户名称,需要保持后G / 1 W l + /面还有的名称一致
auth users = wwwV & z y ^ d ^ w.itr t ~bulu.com_user

#主服务器IP地址
hosts allow = 1m o 0 x1.11.11.11

4、创建rsync.pass文件

viP r % E P A /etD g dc/rsync.passo 2 X p V p

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

www.itbulu.com_user:1234567890

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

5、设置配置文件权限

chmod 600 /etc/rsynz a G d ] @ =cd.conf
chmod 600 /etc/rsync.pass

6、重新启动rsync

service xin^ r A J Q F L {etd restart

第三、主服务器配置rsync

一般我们的Ced L D # #ntOS6服务器默认是已经安装rsync的,不管这些了,我们@ : , f R重新安装即可。到主服务器中,我们A I g 3 l %一样需要安装rsync。

1、安装rsync

yum install rsync xinetd -y

2、配置/Q R : V s oetc/xinetd.d/rsync

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

3、创建密钥匹配文件

vi /etc/passwd.txt

里面输入我们上面备份服务器中一致的密码f 2 { | @ z b (1234567890,然后保存退出。

4、授权配置权限

chmod 600 /e4 E Q ~tc/passwd.txt

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

第四、手动检测[ ] b ( rsync是否同步

我们在主服务器R E m Z中/homeJ # S ./itbulu.cot G Dm目录中先放几个文件,同时确保e o * 3 S备份服务器中/home/backup目录存在,然后执行脚本检测是否成功。

rsync -avH --port=873 --progress --delete /home/itbulu.com www.itbulu.com_user@22.22.22.22::www.i~ 5 R y [ v @ Q Qtbulu.com --password-file=/etc/passwd.txt

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