linux钩子实时同步,使用钩子 post-commit触发同步代码

post-commit是在版本提交之后处理一些动作

1,安装svn

yum install subversion

2,创建版本库目录

svnadmin create /svn/svndate/web1

3,修配置文件

sed -i 's/# anon-access = read/anon-access = none/g' svnserve.conf.bak

sed -i 's/# password-db = passwd/password-db = passwd/g' svnserve.conf.bak

sed -i 's/# auth-access = write/auth-access = write/g' svnserve.conf.bak

sed -i 's/# realm = My First Repository/realm = web1/g' svnserve.conf.bak

sed -i 's/# authz-db = authz/authz-db = authz/g' svnserve.conf.bak

4,添加账户密码文件

echo mark1 mark1 >>passwd

5,修改权限

cat >>authz<

admin = mark,mark1

[web1:/]

@admin = rw

* = r

EOF

启动

svnserver -d -r /svn/svndate

输入用户密码即可

5c1967c5325842cec010c6abd3e07965.gif

6,将web1拉取到svnserver的svnupdate中,rsync会从server本地推送到远端

svn co svn://10.10.233.19/web1/ /svnupdate/ --username=mark1 --password=mark1

7,进入web1 hooks中添加脚本,当web1有更新则会自动rsync到远程服务器节点

vim post-commit

#!/bin/bash

# www.linuxea.com

#this post-commit

IP=10.10.238.94

REPOS="$1"

REV="$2"

export LC_CTYPE="en_US.UTF-8"

export LC_ALL=

#export LANG=en_US.UTF-8

LOGPATH="/app/log"

[ ! -d ${LOGPATH} ] && mkdir ${LOGPATH} -p

#update content from svn

SVN=/usr/bin/svn

$SVN update /svnupdate --username mark1 --password mark1

if [ $? -eq 0 ]

then

/usr/bin/rsync -az --delete /svnupdate/ root@$IP:/var/www/html

fi

修改权限

chmod +700 post-commit

除非另有说明,否则本站上的内容根据以下许可进行许可: CC署名-非商业性使用-相同方式共享4.0国际许可协议4.0进行许可

本文作者:www.linuxea.com for Mark

文章链接:http://www.linuxea.com/1339.html (转载请注明本文出处和本章链接)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值