一、源码
二、被同步端
开放 873 端口
yum install -y rsync
创建登录用户
useradd rsync_www -s /sbin/nologin -M
vim /etc/rsyncd.conf
log file = /var/rsyncd.log
pid file = /var/rsyncd.pid
lock file = /var/rsyncd.lock
secrets file = /etc/rsync.passwd --验证用户的用户名和密码的存放文件,确保同步端和被同步端都要有;
read only = no
list = yes
uid = www
gid = www
use chroot = no
max connections = 100
hosts allow = 120.77.177.249 --允许同步过来的ip,即同步端的ip
[www]
path = /mnt/wwwroot/online/test --同步到哪里的路径
comment = wwwroot bak
auth users = rsync_www
创建登录用户的密码
echo "rsync_www:sd0rekod843jsopew93" > /etc/rsync.passwd
或者
vim /etc/rsync.passwd
rsync_www:sd0rekod843jsopew93
chmod 600 /etc/rsync.passwd --为了安全性,修改权限 【 】
vim /data/shell/rsync-restart.sh
#!/bin/bash
rm -f /var/rsyncd.pid
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
echo "finish"
三、同步端
rpm -qa|grep rsync
如果没有就要安装,yum install rsync
vim /etc/rsync/client/rsync_passwd_www
sd0rekod843jsopew93
chown www.www /etc/rsync/client/rsync_passwd_www
chmod 600 /etc/rsync/client/rsync_passwd_www
vim /data/shell/rsync/rsync_new.sh
#!/bin/bash
DIR="/data/shell/rsync"
slaveip1="39.108.142.90"
for list in `cat $DIR/publish.txt`
do
cd "/mnt/wwwroot/test"
rsync -RaP $list rsync_www@$slaveip1::www --password-file=/etc/rsync/client/rsync_passwd_www >/tmp/publisherror.log 2>&1
if [ $? -ne 0 ];then echo "$slaveip1 $list";fi
done
cat /dev/null > $DIR/publish.txt
说明:其中的::www是指服务端的/etc/rsyncd.conf中的[www]
四、配置
/data/config/params-local.php
'wwwroot'=>'/mnt/wwwroot/prod_jyk999/', //线上项目目录
'testroot'=>'/mnt/wwwroot/test_jyk999/', //测试项目目录
'publish_txt'=>'/data/shell/rsync/publish.txt', //发布时的文件
'svnpro'=>[
'wx_jyk'=>[
'test_path'=>'wx.jyk999.com', //test_path 和 remote_path 必须保持一致,所以要求创建项目目录的时候统一
'remote_path'=>'wx.jyk999.com',
'svnurl'=>'svn://47.75.250.106:3694',
'user'=>'haobin',
'password'=>'jyk123',
'rsync_file'=>'/data/shell/rsync/rsync_new.sh',
],
]
发布系统默认管理员账号密码
admin = boso18soe84wvns20so