linux svn钩子脚本,Linux centos 创建svn 并用钩子完成自动更新

文章目录

测试svn是否可用

设置svn随机重启

安装svn

代码库创建

配置代码库

权限控制authz配置

服务svnserve.conf配置

启动SVN

查看SVN进程

检测SVN 端口

停止SVN

设置钩子自动更新

安装svn

1、检查是否安装过svn

rpm -qa subversion

2、如需要卸载旧版本svn

yum remove subversion

3、安装新版本svn

yum install subversion

4、检验已经安装的SVN版本信息

svnserve --version

代码库创建

mkdir -p /home/svn

svnadmin create /home/svn/test

注:可以用svnadmin create

/home/svn/名称创建多个版本库,在客户端访问的时候可以用svn://0.0.0.0/名称 来访问

配置代码库

进入上面生成的文件夹conf下,进行配置

cd /home/svn/test/conf

用户密码passwd配置

vi passwd

在里面配置svn账号和密码(按下键盘A可以编辑,编辑完了按esc退出。在输入:wq保存,不想保存的话输入:q!)

[users]

test=123456

权限控制AUTHZ配置

vi authz

配置上用户组,然后给用户组附权限

[groups]

user=test

[/]

@user=rw

注:

1、@user=rw,r=读、w=写

2、多个用户之间用,隔开例如user=test,zs;如果需要限定文件夹则需要

[文件夹名称:/]

@user=rw

服务SVNSERVE.CONF配置

vi svnserve.conf

最下面写入信息([general]的最下面,或者在对应的位置去掉注释)

anon-access = none #匿名访问的权限,可以是read,write,none,默认为read

auth-access = write #使授权用户有写权限

password-db = passwd #密码数据库的路径

authz-db = authz #访问控制文件

realm = ceshi #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

启动SVN

/usr/bin/svnserve -d -r /home/svn/

查看SVN进程

ps aux |grep 'svn'

下面表示已启动

root  27082  0.0  0.0 162184  660 ?  Ss  15:24  0:00 /usr/bin/svnserve -d -r /home/svn/

检测SVN 端口

netstat -ln |grep 3690

停止SVN

killall svnserve

测试svn是否可用

默认客户机上已安装tortoiseSVN

新建一个文件夹,右键文件夹(svn检出),在版本库URL输入

svn://192.168.10.181/test //根据个人ip地址而定

然后确定,输入之前在passwd输入的账号和密码

test

123456

完成

设置svn随机重启

vi /etc/profile

最下面倒数第二行  unset

i上面添加

/usr/bin/svnserve -d -r /home/svn/

设置钩子自动更新

在hooks下创建一个post-commit的配置文件,给他可执行权限

cd /home/svn/test/hooks/

新建打开post-commit

vi post-commit

写入内容

#!/bin/sh

export LANG=en_US.UTF-8

SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件

WEB=/home/wwwroot/test #要更新的目录

echo "Code Deployed By at $CURDATE" >> /home/svn/test/hooks/code_deploy_log

$SVN update $WEB --username test --password 123456 >> /home/svn/test/hooks/code_deploy_log

chown -R www:www $WEB

设置可执行权限

chmod a+x post-commit

创建要更新的目录

cd /home/wwwroot/

svn checkout svn://192.168.10.181/test

会让你输入root密码、svn账号和密码,然后在本机更新一个文件试试

如果看到下面报错

post-commit hook failed (exit code 255) with no output.

说明post-commit没有可执行权限,添加下权限,记得重启下svn

chmod a+x post-commit

killall svnserve

/usr/bin/svnserve -d -r /home/svn/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值