inotify+rsync及sersync部署流程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了inotify+rsync及sersync部署流程相关的知识,希望对你有一定的参考价值。
inotify+rsync部署流程:第一步:完成部署rsync守护进程服务
第二步:确认inotify软件是否安装
扩展yum源(扩展的仓库):epel(企业级linux的yum源的扩展仓库)
? 阿里云epel源:通过访问阿里yum源镜像地址获取
? 直接安装epel源方式:yum install epel-release
yum install inotify-tools -y
/usr/bin/inotifywait --- 开启实时监控服务,监控目录或文件的数据变化
/usr/bin/inotifywatch --- 收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计。
- inotify软件服务优化
对 max_user_watches max_user_instances max_queued_events 三个文件进行优化
[[email protected]_server inotify]# cat /proc/sys/fs/inotify/max_user_watches
50000000
[[email protected]_server inotify]# cat /proc/sys/fs/inotify/max_queued_events
3276790
[[email protected]_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_user_watches
[[email protected]_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_queued_events
说明:以上配置重启可能会失效,需要放置在rc.local文件中
第三步:利用脚本的方式,将以上两个服务串联在一起
cat inotify.sh
#!/bin/bash
inotifywait -mrq --format "%w%f" -e create,close_write,delete,moved_to /data|while read line
do
rsync -az /data/ --delete [email protected]::backup --password-file=/etc/rsync.password
done
脚本在无限循环执行时:
方法一:利用ctrl+z,只是暂停脚本运行(暂停的进程)
[[email protected] scripts]# jobs --- 前台运行脚本命令,若放入后台,可以通过jobs命令
[1]+ Stopped sh -x inotify.sh
方法二:kill -9 9857 9859 强制杀
pkill -f inotify 模糊杀
sersync部署流程:
第一步:完成部署rsync守护进程服务
第二步:部署sersync实时监控服务
第三步:确认软件是否安装(sersync)
绿色软件包的安装方式(二进制包安装方式)
sersync软件官方地址:https://github.com/wsgzao/sersync
进行软件下载
将下载好的软件程序上传到服务器中(nfs服务器)
解压缩软件程序包
unzip sersync_installdir_64bit.zip
将软件程序目录移动到指定目录中
mv sersync/ /usr/local/
第四步:编写sersync配置文件
<filter start="false">
<exclude expression="(.).svn"></exclude>
<exclude expression="(.).gz"></exclude>
<exclude expression="^info/"></exclude>
<exclude expression="^static/"></exclude>
</filter>
说明:实时同步的排除功能
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>
说明:指定监控文件或目录变化的事件信息
<sersync>
<localpath watch="/data">
<remote ip="172.16.1.41" name="backup"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
说明:sersync同步信息
watch="/data" 指定监控的目录
ip="172.16.1.41" 指定备份服务器地址
name="backup" 指定备份服务器模块信息
params="-az" 指定rsync推送命令参数
users="rsync_backup 指定rsync认证用户
passwordfile="/etc/rsync.password" 指定rsync认证文件
第五步:启动sersync服务
chmod +x sersync --- 授予sersync命令拥有执行权限
[[email protected] bin]# ./sersync -h
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
./sersync -dro /usr/local/sersync/conf/confxml.xml
[[email protected] data]# ps -ef|grep sersync
root 10128 1 0 13:04 ? 00:00:00 ./sersync -dro /usr/local/sersync/conf/confxml.xml
以上是关于inotify+rsync及sersync部署流程的主要内容,如果未能解决你的问题,请参考以下文章