inotify+rsync实时同步备份的部署流程

inotify+rsync实现实时同步备份部署流程

第一个里程:先安装inotify软件(在存储服务器上)

[root@nfs01 ~]# yum -y install inotify-tools
[root@nfs01 ~]# rpm -ql inotify-tools
/usr/bin/inotifywait -->实现对数据目录信息变化监控
/usr/bin/inotifywatch -->监控数据信息变化,对变化的数据进行统计

第二个里程:部署rsync服务

部署服务端:
1.检查是否安装rsync服务
rpm -qa |grep rsync
2.编写主配置文件
#全局配置,在全局生效
uid = rsync -->指定rsync服务运行的时候,向磁盘读取和写入的操作者
gid = rsync -->指定rsync服务运行的时候,向磁盘读取和写入的操作者
use chroot = no -->进行数据同步存储时,安全相关参数,默认内网进行数据同步时,可以关闭
max connections = 200 --> 定义向备份服务器进行数据存储的并发连接数
timeout = 300 --> 定义与备份服务器建立的网络连接,在多长时间没有数据传输时,就释放连接
pid file = /var/run/rsyncd.pid --> 服务程序运行时,会将进程的pid信息存储到一个指定的pid文件中
lock file = /var/run/rsync.lock --> 定义锁文件,主要用于配合max connections 参数,当达到最大连接就禁止继续访问
log file = /var/log/rsyncd.log --> 定义服务的日志文件保存路径信息
ignore errors --> 在进行数据备份传输过程过程中,忽略一些I/O产生的传输错误
read only = false --> 设置对备份的目录的具有读写权限,即将只读模式进行关闭
list = false --> 确认是否可以将服务配置的模块信息,在客户端可以查看显示
hosts allow = 172.16.1.0/24 --> 设置备份目录允许进行网络数据备份的主机地址或网段信息,即设置白名单
hosts deny = 0.0.0.0/32 --> 设置备份目录禁止进行网络数据备份的主机地址或网段信息,即设置黑名单
auth users = rsync_backup --> 指定访问备份数据目录的认证用户信息,为虚拟定义的用户,不需要进行创建
secrets file = /etc/rsync.password --> 设置访问备份数据目录进行认证用户的密码文件信息,会在文件中设置认证用户密码信息
#局部配置,只在模块内生效
[backup] --> 指定备份目录的模块名称信息
comment = "backup dir by oldboy" --> 模块说明信息
path = /backup --> 指定数据进行备份的目录信息
3.创建备份管理用户
useradd -M -s /sbin/nologin rsync
4.创建备份目录,并将所属主与所属组改成rsync用户
mkdir /backup
chown rsync. /backup
5.创建用户认证文件,编写认证用户和密码信息,设置文件权限为600
echo 'rsync_backup:123' >> /etc/rsync.password
chmod 600 /etc/rsync.password
6.启动rsync守护进程服务
rsync --daemon
部署客户端:
1.检查是否安装rsync服务
rpm -qa |grep rsync
2.创建认证文件,编写认证用户密码,设置文件权限为600
echo '123' >> /etc/rsync.password
chmod 600 /etc/rsync.password
3.利用客户端进行数据同步测试
[root@nfs01 /]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::back
up --password-file=/etc/rsync.password sending incremental file list
hosts

第三个里程:让inotify与rsync服务建立连接,使用shell脚本

[root@nfs01 ~]# cat /server/scripts/inotify.sh 
#!/bin/bash
#监控/data目录的数据变化
inotifywait -mrq  --format "%w%f" -e create,delete,moved_to,close_write /data|\
#使用死循环进行读取
while read line
do
#使用无差异备份将变化的数据推送到备份服务器
rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done

第四个里程:测试脚本运行结果

#存储服务器
[root@nfs01 scripts]# sh  inotify.sh &   #&表示在后台运行
[1] 8051
[root@nfs01 data]# touch {1..100}.txt
[root@nfs01 data]# ls|wc -l
100
[root@nfs01 data]# 
#备份服务器
[root@backup backup]# ls|wc -l
100
posted @ 2019-03-11 09:33  游走在边缘的人  阅读(187)  评论(0编辑  收藏  举报