7、resync实时备份
sersync+rsync(增量,无差异备份),resync支持多线程,效果比inotify更好,配置思想和inotify很相似
7.1、在备份服务器上安装并配置rsync服务,实现nfs共享目录,可以同步到rsync服务器上;
7.2、在nfs服务器上安装配置sersync服务,实现nfs共享目录实时同步到备份服务器上;
1、下载rpm包:
rpm -qa sersync #sersync在网络中的yum源仓库中是没有的;
wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
mkdir /application/
cd /application/
cp /var/cache/yum/sersync2.5.4_64bit_binary_stable_final.tar.gz /application
tar -xzvf sersync2.5.4_64bit_binary_stable_final.tar.gz /application/
2、以下面的格式进行:
3、confxml.xml配置文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false"> #过滤功能,类似于rsync中的--exclude参数
<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/"> #监控的目录;
#对应的是rsync中的模块名;此配置在后面可以加多个,备份到不同的rsync备份服务器或不同的模块;
<remote ip="172.16.1.41" name="nfsbackup/"/>
<!--<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"/> #rsync服务端的验证密码文件
<userDefinedPort start="false" port="874"/><!-- port=874 -->#自定义端口,一般不用,默认是874;
<timeout start="true" time="100"/><!-- timeout=100 -->#客户端超时100秒断开连接;
<ssh start="false"/>
</rsync>
#失败的日志收集文件
<failLog path="/application/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
#对监控目录与目标服务器每隔一段时间进行一次整体同步,默认600分钟且不开启,根据个人情况是否开启;
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">#如果之前开启了文件过滤,这里也要设置过滤虚拟交换机
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>
<plugin name="command">
<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">
<include expression="(.*)\.php"/>
<include expression="(.*)\.sh"/>
</filter>
</plugin>
<plugin name="socket">
<localpath watch="/opt/tongbu">
<deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<plugin name="refreshCDN">#Cdn传输
<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
<sendurl base="http://pic.xoyo.com/cms"/>
<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
</localpath>
</plugin>
</head>
4、查看参数:
[root@nfs01 bin]# /application/sersync/bin/sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
_______________________________________________________________
5、启动服务:
/application/sersync/bin/sersync2 -d -n 8 -r -o /application/sersync/conf/confxml.xml
6、查看服务:
[root@nfs01 data]# ps -ef | grep "sersync"| grep -v "grep"
root 1991 1 0 12:05 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2032 1 0 12:11 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2065 1 0 12:14 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2108 1 0 12:18 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2126 1 0 12:19 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2176 1 0 12:23 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2252 1 0 12:26 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
root 2334 1 0 12:27 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml
7、加入到开机自启动服务中:
echo ‘/application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml’ >/etc/rc.local
最新文章
- angularjs-$http.post请求传递参数,后台Controller接受不到原因
- 清理C盘系统垃圾文件-批处理方式
- 开发中常用js记录(二)
- ICA
- 解决Unable to reach a settlement: [diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha1] and [curve25519-sha256@li
- 使用butterknife zelezny插件时必须保证已导入butterKnife的库工程。
- loadrunner录制时弹出invalid application path!please check if application exists对话框
- webdriver(python)学习笔记五——层级定位
- hadoop错误Could not obtain block blk_XXX_YYY from any node:java.io.IOException:No live nodes contain current block
- 【宽搜】【并查集】Vijos P1015 十字绣
- poj2425--A Chess Game
- javascript设计模式——Publish/Subscribe
- Import MySQL Dumpfile, SQL Datafile Into My Database
- 区块链 PoW 与 PoS 的纷争
- qt 多语化
- onmouseover与onmouseenter区别
- 使用VS2015编译xlslib库
- 01-学习vue前的准备工作
- halcon电路断裂检测
- MongoDB设计系列