我是一名运维人员,在日常工作中很多时候需要进行测试环境和线上代码的同步问题,但是由于我们这边开发和测试使用的相同的配置文件这个时候需要我们在代码部署或是更新的时候进行配置文件的修改和替换,但是这个过程中很容易出现差错,下面给大家讲一下我现在使用的方案:
搭建rasyn服务,这个需要和测试环境一体:
安装xinetd程序
yum –y install xinetd #安装守护进程,rsync依赖此进程
编辑 配置文件
vim /etc/xinetd.d/rsync
service rsync
{
disable = no #yes修改为no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
mkdir /etc/rsyncd/ #创建配置文件目录
vim /etc/rsyncd/rsyncd.conf #编辑配置文件,此文件的权限必须为644
use chroot = yes
#设置ip绑定
address = 0.0.0.0
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
motd file = /etc/rsyncd/rsyncd.motd
# MODULE OPTIONS
[letv]
#设置同步路径
path = /home/test/
list = no
read only = no
ignore errors
#设置认证用户名
auth users = letv
comment = ceshi ceshi
#设置密码文件
secrets file = /etc/rsyncd/rsyncd.secrets
vim /etc/rsyncd/rsyncd.secrets #编辑用户密码对应关系的文件(权限未0600)
letv:letv123
客户端同步测试语句
rsync -arvzP --password-file=/home/pass letv@192.168.2.165::letv/tu/ /home/456
密码文件权限为0600,只用写个密码即可 认证用户 服务器地址 定义共享路径/下一级目录 本地同步目录
rsync -arvzP --password-file=/home/pass --exclude-from=$tomcat/bin/nofile.list letv@192.168.2.165::letv/tu/ /home/456
--exclude-from=$tomcat/bin/nofile.list对应的路径下次同步不替换
同步报错
解决对策:在服务器端创建软连接
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
nofile.list
WEB-INF/classes/config/config.properties
js/common/ueditor/jsp/*
WEB-INF/classes/yeepay/*
WEB-INF/classes/fundpool/*
WEB-INF/classes/huifubao/*
我们在这个文件中定义我们同步时候不替换的文件即可