实现实时同步备份总结
\ 一. 实时同步备份原理
1.inotify实时监控
2.rsync实时传输
3.sersync将两者结合实现实时同步备份
\ 二. 实时同步备份方法
\ 1. inotify实时监控指定目录变化
1)安装inotify (nfs服务器)
yum install -y inotify-tools
2)监控命令使用 /usr/bin/inotifywait
a. 参数: -m 让监控始终保持(不加:监控一次)
-r 递归监控目录
-q 只输出事件信息
-e 只监控xxx事情
--format 定义信息输出格式(时间 创建什么 事件:创建xxx)
--timefmt 定义时间格式
b. 语法结构: inotifywait 参数 目录
inotifywait -mrq --timefmt %F %w --format "%T %w%f %e" /data
%w ---监控的目录
%f ---触发事件文件
%e ---触发事件类型
2. 脚本编写过程
第一里程: 进行监控 修改,移动,监控目录增加数据,删除事件
inotifywait -mrq --format "%w%f" -e "close_write,move,create,delete" /data
\ 第二里程: 部署好rsync守护进程
\ 第三里程: 编写脚本
#!/bin/bash #修改,移动,监控目录增加数据,删除事件
inotifywait -mrq --format "%w%f" -e "close_write,move,create,delete" /data
while read line
do
rsync -az --delete /data/ rsync_backup@172.16.1.41::backup --password=/etc/rsync.password
done
让脚本秩序运行: nohep 脚本 & nohep(让脚本变为守护进程) &(让脚本后台运行)
\ 3. 利用软件实时同步 sersync
前提:有inotify+rsync
\ 1)部署sersync
第一个里程:下载软件
\ 第二个里程: 上传到linux (lrzsz)
rz -y 上传到linux
sz -y 下载到windows
\ 第三个里程: 安装sersync
unzip sersync_installdir_64bit.zip
cp -a /server/toole/sersync_installdir_64bit/sersync /usr/local
\ 第四个里程: 修改配置
vim /usr/local/sersync/conf/confxml.xml
\ 第五个里程:启动服务并检查测试
ln -s /sercer/toole/sersync_installdir_64bit/sersync /usr/local/sbin/sersyc
chmod +x /usr/local/sersync/bin/sersync
\ 命令参数:
-d: 开启守护进程模式
-r: 监控前先rsync推送一遍
-o: 指定配置文件,默认confxml.xml
启动:
serync -dro /usr/local/conf/confxml.xml
\ 4. 弃用NFS方案
避免NFS服务出现单点故障, 利用web服务让用户可以读取数据
设想:scp到web web配置nfs
老师讲的: inotify监控sersync到web gg时可以卸载web挂载的目录然后把备份过来的目录复制到所访问的
被卸载的目录中实现依旧可读数据(不可存)
网友评论