centos8安装sersync为rsync实现实时同步
2024-09-06 22:36:43
一,查看本地centos的版本:
[root@localhost lib]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看内核是否支持inotify
[root@localhost nfs]# ll /proc/sys/fs/inotify/
总用量 0
-rw-r--r-- 1 root root 0 2月 24 15:01 max_queued_events
-rw-r--r-- 1 root root 0 2月 24 15:01 max_user_instances
-rw-r--r-- 1 root root 0 2月 24 13:20 max_user_watches
说明:看到列出的三个文件,说明系统内核支持inotify
说明:sersync是基于inotify的,所以需要这个功能模块的支持
三,配置inotify参数,避免因限制导致出错
查看inotify相关的三个值:
分别为:队列中event的长度,用户可监控数量的多少,用户可使用的实例数量
[root@localhost nfs]# sysctl -a | grep max_queued_events
fs.inotify.max_queued_events = 16384
[root@localhost nfs]# sysctl -a | grep max_user_watches
fs.inotify.max_user_watches = 8192
[root@localhost nfs]# sysctl -a | grep max_user_instances
fs.inotify.max_user_instances = 128
修改:
[root@localhost source]# sysctl -w fs.inotify.max_queued_events="327679"
fs.inotify.max_queued_events = 327679
[root@localhost source]# sysctl -w fs.inotify.max_user_watches="50000000"
fs.inotify.max_user_watches = 50000000
[root@localhost source]# sysctl -w fs.inotify.max_user_instances="65535"
fs.inotify.max_user_instances = 65535
[root@localhost source]# sysctl -p
四,下载安装sersync
1,下载地址
说明:官方地址:
https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz
在墙外打不开,大家可以访问下面github上面的地址:
https://github.com/wsgzao/sersync
2,下载及解压:
[root@localhost source]# wget https://codeload.github.com/wsgzao/sersync/zip/master
[root@localhost source]# mv master master.zip
[root@localhost source]# unzip master.zip
3,安装到soft目录
[root@localhost source]# cd sersync-master/
[root@localhost sersync-master]# ls
inotify-tools-3.14.tar.gz README.md rsync-3.1.1.tar.gz sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@localhost sersync-master]# tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@localhost sersync-master]# mv GNU-Linux-x86/ /usr/local/soft/sersync2
五,查看sersync的帮助信息
[root@localhost sersync-master]# /usr/local/soft/sersync2/sersync2 -help
六,sersync的参数说明:
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
七,sersync的配置:
1,inotify项的配置建议:说明:是使用inotify监控的类型:
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="true"/>
</inotify>
2,localpath:
<localpath watch="/data/nfs/source">
<remote ip="127.0.0.1" name="wwwroot"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
说明:
/data/nfs/source是本地要监控的目录
remote 对应服务的ip和name
3,rsync的配置
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="pusher" passwordfile="/data/rsync/conf/client.pass"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
4,说明:其他的设置项不必改动
八,运行sersync
[root@localhost liuhongdi]# /usr/local/soft/sersync2/sersync2 -r -d -o /usr/local/soft/sersync2/confxml.xml
九,关于rsync服务的搭建:参见这一篇:
https://www.cnblogs.com/architectforest/p/12360875.html
十,sersync的日志位于何处?
[root@localhost liuhongdi]# more /tmp/rsync_fail_log.sh
#errno 2560
cd /data/nfs/source && rsync -artuz -R "./abc.txt" pusher@127.0.0.1::wwwroot --password-file=/data/rsync/conf/client.pass >/dev/null 2>&1
十一,测试本地两个目录的同步情况:
1, /data/nfs/source这个目录是sersync监控的目录
[root@localhost source]# pwd
/data/nfs/source
[root@localhost source]# vi rand.txt
[root@localhost source]# more rand.txt
rand
2,/data/nfs/dest 是rsync服务中wwwroot这个区域指定的目录
[root@localhost dest]# pwd
/data/nfs/dest
[root@localhost dest]# more rand.txt
rand
说明:在监控目录中增加文件后,rsync同步的目录中文件也立即出现,且内容相同
所以sersync很适合做文件备份
最新文章
- JAVA构造函数(方法)与方法是啥意思
- Castle ActiveRecord 二级缓存使用 异常记录
- Android OptionMenu
- Android -- Layout布局文件里的android:layout_height等属性为什么会不起作用?
- 修改Chrome的User Agent的方法 真实有效
- poi做Excel数据驱动,支持.xls和.xlsx格式的excel文档,比起jxl强大不少
- python 字典排序,列表排序详细
- 201521123076 《Java程序设计》 第十四周学习总结
- java压缩包上传,解压,预览(利用editor.md和Jstree实现)和下载
- java发送短信验证码
- 【转载】访问IIS中网站出现 403.14 - Forbidden报错信息
- mx:Panel (面板容器) mx:Button (按钮) 默认大小
- 配置apache-maven-3.6.0时所遇到的坑(一)
- ASP.NET实现头像剪切保存
- spring boot 服务 正确关闭方式
- MyBatis where标签语句
- Python Web学习笔记之并发编程的孤儿进程与僵尸进程
- 你的C/C++程序为什么无法运行?揭秘Segmentation fault (2)
- c++沉思录中 对字符串进行围边 横向连接 竖向连接操作的练习
- MongoDB 安装、运行、使用、数据恢复
热门文章
- wireshark在ubuntu系统中的正确安装方法
- MySQL关于useSSL的问题,会弹出警告
- access数据库一般注入方法及偏移注入
- bernoulli, multinoulli distributions 讲解
- Mybatis接口Mapper内的方法为啥不能重载吗?
- 信号、多app应用、flask-script
- 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?
- linux 上部署 YApi 可视化接口管理平台
- XDCMS审计(复现)
- 能否使用GHDL+GTKWave代替Quartus ii (续——vhdl_testbench_cli)