蜗牛789
主机测评与优惠

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

文章目录

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

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

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

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

文章目录
隐藏

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

第二、配置备份服务器rsync

第三、主服务器配置rsync

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

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

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

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

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

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

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

这里我们将文件中的参数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.itbulu.com]

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

#对应上面模块名称
comment = www.itbulu.com

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

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

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

4、创建rsync.pass文件

vi /etc/rsync.pass

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

www.itbulu.com_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

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

3、创建密钥匹配文件

vi /etc/passwd.txt

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

4、授权配置权限

chmod 600 /etc/passwd.txt

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

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

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

rsync -avH –port=873 –progress –delete /home/itbulu.com www.itbulu.com_user@22.22.22.22::www.itbulu.com –password-file=/etc/passwd.txt

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

About 蜗牛

【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。





评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址