Sersync是一个基于inotify和rsync的实时文件同步工具,它主要用于Linux服务器之间的数据同步。inotify是Linux内核的一个子系统,用于监控文件系统中文件或目录的更改事件,如创建、修改、删除等。而rsync则是一个用于同步文件和目录的开源工具,它可以在本地或远程主机之间进行数据同步。
Sersync通过inotify机制实时监控指定目录的更改事件,并将这些事件传递给rsync进行同步操作。这种方式可以实现数据的实时或近似实时同步,非常适合对实时性要求较高的应用场景,如网站文件更新、日志收集等。
Sersync安装部署
1. 下载Sersync
由于官方Google代码归档已经无法访问,我们可以使用备用下载地址:
wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
2. 解压并配置
将下载的源码包解压到/usr/local/目录:
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
接下来,修改confxml.xml配置文件以符合你的需求。例如,要设置服务器自动定时备份/home
数据到备份服务器,你需要编辑配置文件并指定rsync服务器的地址、模块名、密码文件路径等信息。
3. 配置示例
假设服务器IP为172.16.5.222,备份服务器IP为172.16.5.223,现监控服务器/data目录,实时同步到备份服务器/data/backup下,需要修改/usr/local/GNU-Linux-x86/confxml.xml如下:
<sersync>
<localpath watch="/data"> #监听本地路径
<remote ip="172.16.5.223" name="test"/> ## 对端IP及模块名称
<commonParams params="-avz"/> ## rsync 传输所用参数
<auth start="true" users="rsync_user" passwordfile="/etc/rsync_password.txt"/> ##启用认证,指定用户名及密码文件路径
4. 添加密码文件并设置权限
在服务器上创建密码文件并设置合适的权限:
touch /home/223.password
echo "1234" >/home/223.password
chmod 600 /home/223.password
5. 启动Sersync
将sersync添加到环境变量并启动:
ln -s /usr/local/GNU-Linux-x86/sersync2 /usr/bin
sersync2 -ro /usr/local/GNU-Linux-x86/confxml.xml #启动sersync
6. 配置备份服务器
在备份服务器上,你需要配置rsync服务并添加认证账户和密码文件。编辑/etc/rsyncd.conf文件,并添加相应的配置。
同时,在备份服务器上创建密码文件并设置权限:
touch /home/rsync.password
echo "rsync:1234" >/home/rsync.password
chmod 600 /home/rsync.password
7. 测试同步
当在服务端/data路径下创建文件,在客户端备份服务器可以看到文件已自动同步
注意事项
-
确保rsync在服务端和客户端均已安装并启动服务。
-
关闭防火墙或配置适当的防火墙规则以允许rsync和inotify通信。
-
SELinux可能会影响rsync和inotify的运行,建议关闭或配置相应的SELinux策略。
原文始发于微信公众号(网络个人修炼):Sersync:实时文件同步工具的原理与部署
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论