客户端安装:
程序名:rsycn
安装目录:/project/
主要的配置文件:/project/rsync/rsyncd.conf
开放的端口:873
主要作用:用于提供文件同步的功能
安装步骤
安装步骤如下:
1、使用FTP工具连接到服务器(如果服务器上开启的是SSH,使用SFTP模式)
2、切换到目录/project/
3、上传rsync-3.0.9.tar.gz
4、使用ssh工具连接到服务器
5、执行以下命令:
a) cd /project/
b) chmod +x rsync-3.0.9.tar.gz
c) tar -zxvf rsync-3.0.9.tar.gz
d) cd rsync-3.0.9
e) ./configure --prefix=/project/rsync/
f) make
g) make install
配置接收服务器:
本机需要接收的内容:
CMS服务器发送的静态文件
配置步骤如下:
1、使用ssh工具连接到接收服务器;
2、#cd /project
3、#vi rsyncd.conf
4、输入以下内容:
uid = root
gid = root
port = 873
max connections = 200
use chroot = no
log file = /project/logs/rsync/rsyncd.log
log format = %t %a %m %f %b
pid file = /project/rsync/rsyncd.pid
lock file = /project/rsync/rsync.lock
timeout = 300
[cmsroot]
path = /u01/app/qdgx-easysite/qdgx_cms/webapps/ROOT/
comment = home cad folder
ignore errors = yes
read only = no
list = no
auth users = rsync
hosts allow = 172.2.2.2
hosts deny = *
secrets file = /project/rsync/rsyncd.scrt
[cmsfire]
path = /u01/app/qdgx-easysite/qdgx_cms/webapps/eportal/fileDir
comment = home cad folder
ignore errors = yes
read only = no
list = no
auth users = rsync
hosts allow = 172.2.2.2
hosts deny = *
secrets file = /project/rsync/rsyncd.scrt
[cmsimm]
path = /u01/app/qdgx-easysite/qdgx_cms/webapps/eportal/immovableDir
comment = home cad folder
ignore errors = yes
read only = no
list = no
auth users = rsync
hosts allow = 172.2.2.2
hosts deny = *
secrets file = /project/rsync/rsyncd.scrt
[cmsuiframework]
path = /u01/app/qdgx-easysite/qdgx_cms/webapps/eportal/uiFramework
comment = home cad folder
ignore errors = yes
read only = no
list = no
auth users = rsync
hosts allow = 172.2.2.2
hosts deny = *
secrets file = /project/rsync/rsyncd.scrt
5、保存
6、#chmod 400 rsyncd.conf(该文件必须为400权限)
7、#vi rsyncd.scrt
8、输入rsync:rsync
9、保存
10、#chmod 400 rsyncd.scrt(该文件必须为400权限)
11、开启rsync守护进程的命令如下:
#cd /project/rsync/bin/
#./rsync --daemon --config=/project/rsync/rsyncd.conf
服务端:
程序名:rsync
安装目录:/project/
主要的配置文件:/project/rsync/rsyncd.conf
开放的端口:1873
主要作用:用于提供文件同步的功能
安装步骤
安装步骤如下:
1、使用FTP工具连接到服务器(如果服务器上开启的是SSH,使用SFTP模式)
2、切换到目录/project/
3、上传rsync-3.0.9.tar.gz
4、使用ssh工具连接到服务器
5、执行以下命令:
a) cd /project/
b) chmod +x rsync-3.0.9.tar.gz
c) tar -zxvf rsync-3.0.9.tar.gz
d) cd rsync-3.0.9
e) ./configure --prefix=/project/rsync/
f) make
g) make install
配置本机同步推送服务器
步骤如下:
1、使用ssh工具连接到推送服务器;
2、#cd /project/rsync
3、#vi sersyncd.scrt
4、输入rsync
5、保存
6、chmod 400 sersyncd.scrt
安装sersync
程序名:sersync
安装目录:/project/sersync/
主要的配置文件:/project/sersync/conf/confxml.xml
主要作用:用于提供文件同步的功能(发送)
注意:由于sersync依赖于rsync,因此,在安装Sersync之前,要先确定rsync是已经配置成功。
安装文件:sersync2.5.4_64bit_binary_stable_final.tar.gz
安装步骤:(不包含配置,在后面章节中详细说明)
1、上传sersync2.5.4_64bit_binary_stable_final.tar.gz到/project目录下
2、创建以下目录结构:
# mkdir /project/sersync/
# mkdir /project/sersync/conf
# mkdir /project/sersync/bin
# mkdir /project/sersync/log
3、并授予执行权限给sersync2.5.4_64bit_binary_stable_final.tar.gz
#chmod +x sersync2.5.4_64bit_binary_stable_final.tar.gz
4、并解压安装sersync
# tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
# cd /project/GNU-Linux-86
拷贝confxml.xml、sersync2两个文件
# cp confxml.xml /project/sersync/conf
# cp sersync2 /project/sersync/bin
配置sersync静态文件实时同步
说明:
1、同步的静态文件目录包括:
/project/app/easysite-tomcat/webapps/root
/project/app/easysite-tomcat/webapps/eportal/fileDir
/project/app/easysite-tomcat/webapps/eportal/immovableDir
/project/app/easysite-tomcat/webapps/eportal/uiFramework
2、同步每个目录需要一个单独的配置文件。
3、以下分别配置。
root:/project/app/easysite-tomcat/webapps/root
1、拷贝一个Sersync的配置文件并编辑:
执行以下命令:
# cd /project/sersync/conf
#cp confxml.xml webroot.xml
# vi webroot.xml
按照红色标识的内容及注释修改参数配置:
-----------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
# 设置本地IP和端口
<host hostip="localhost" port="8009"></host>
# 开启DUBUG模式
<debug start="false"/>
# 开启xfs文件系统
<fileSystem xfs="false"/>
# 同步时忽略推送的文件(正则表达式),默认关闭
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
</filter>
<inotify>
# 设置要监控的事件,可以根据不同情况进行相关配置
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync>
# 本地同步的目录路径
<localpath watch="/project/app/easysite-tomcat/webapps/root/">
# 远程要同步的主机IP和rsync模块名
<remote ip="172.1.1.1" name="cmsroot"/>
<remote ip="172.1.1.2" name="cmsroot"/>
</localpath>
<rsync>
# rsync指令参数
<commonParams params="-artuz "/>
# rsync同步认证,true 开启密码认证
<auth start="true" users="rsync" passwordfile="/project/rsync/sersyncd.scrt"/>
# 设置rsync远程服务端口,远程非默认端口则需打开自定义
<userDefinedPort start="true" port="1873"/><!-- port=873 -->
# 设置超时时间
<timeout start="true" time="100"/><!-- timeout=100seconds-->
# 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书
<ssh start="false"/>
</rsync>
# sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。
<failLog path="/project/sersync/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
# 设置rsync+crontab定时传输,整体同步,默认关闭,true 开启,默认为600分钟
<crontab start="false" schedule="600"><!--600mins-->
#是否开启过滤规则,默认不开启
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
# 设置sersync传输后调用name指定的插件脚本,默认关闭
<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">
<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>
2、设置环境变量(每台发布服务器设置一次):
# echo "export PATH=$PATH:/project/sersync/bin/" >> /home/project/.bash_profile
# source /home/project/.bash_profile
3、设置每个inotify instance相关联的watches 的上限(可监控的目录数)
echo 50000000 > /proc/sys/fs/inotify/max_user_watches
设置调用inotify_init时分配给inotify instance中可排队的event 的数目最大值(请求events数的最大值)
echo 327676 > /proc/sys/fs/inotify/max_queued_events
4、启动静态文件实时同步sersync
说明:
CMS服务器的sersync实时同步发送服务:默认启动
确保接收端服务器配置完成、文件拷贝完成后再执行
# cd /project/sersync/bin
# sersync2 -d -o /project/sersync/conf/webroot.xml
注:重启操作如下:
# killall sersync2 && sersync2 -d -o /project/sersync/conf/webroot.xml
5、设置开机启动
说明:
CMS服务器的sersync开机启动服务:默认启动
确保接收端服务器配置完成、文件拷贝完成后再执行
# echo "sersync2 -d -o /project/sersync/conf/webroot.xml" >> /home/project/.bash_profile
Sersync命令参数说明
-r 执行一次整体同步
-d 实时同步
-o 指定要执行的配置文件路径