rsync+sersync实现实时备份同步
简介
:::: info (*´▽`)ノノ
rsync 是一个常用的 Linux 应用程序,用于文件同步,差量传输,但是每次文件发生变更需要手动去执行命令完成同步,可以依赖inotify进行检测文件变更情况,但需要另外编写脚本,就在苦恼之时,发现了一款工具——sersync,它国产开源,内置inotify+rsync命令,可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录。相对于inotify-tools遍历更快,在同步大量数据时更有优势,搭建更快,无需额外编写脚本。
::::
环境准备
操作系统:Centos 7.9
主机 | IP | 说明 |
---|---|---|
backup | 192.168.100.110 | rsync服务端,用于作备份服务器 |
web | 192.168.100.112 | rsync客户端,配合sersync推送数据到backup进行备份 |
安装rsync
web主机和backup主机都需要安装rsync
1 | yum install -y rsync |
yum源基本是旧版本,存在漏洞,建议官方编译进行安装,本教程仅演示
rsync服务端配置
编辑/etc/rsyncd.conf
文件
1 | vim /etc/rsyncd.conf |
填入以下内容:
1 | uid = rsync |
相关内容和参数可自行网上搜索,本教程不作研究
编辑/etc/rsync.passwd
文件
1 | echo 'rsync_backup:admin' /etc/rsync.passwd |
格式:用户名:密码,密码实际上要尽量复杂
必须设置权限,保证只有文件所有者可读,不然会报错
添加虚拟用户
1 | useradd -s /sbin/nologin -M rsync |
启动服务
1 | systemctl enable rsyncd |
检查服务
1 | [root@web /]$ps -ef | grep rsync |
创建共享目录
1 | mkdir -p /backup/ |
sersync客户端设置
安装sersync
1 | wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz |
实际上可以根据需要自行定制放置目录
创建备份目录
1 | mkdir -p /backup/ |
设置密钥文件
1 | echo 'admin' > /etc/rsync.passwd |
修改confxml.xml文件
1 | vim /app/tools/sersync/conf/confxml.xml |
修改23 ~ 36行xml配置,如图所示
启动sersync服务
添加环境变量
1 | echo "PATH=$PATH:/app/tools/sersync/bin" >> /etc/profile |
启动sersync服务
1 | sersync2 -rdo /app/tools/sersync/conf/confxml.xml |
多个文件可以配置多个confxml.xml文件进行实时同步备份
测试服务
在客户端创建文件,看服务端是否自动同步?
至此,sersync配置完毕!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 null's Blog!
评论