svn搭建脚本


1yum install subversion

 

2、输入rpm -ql subversion查看安装位置 

我们知道svnbin目录下生成了几个二进制文件。

输入 svn --help可以查看svn的使用方法,如下图。

 

 

3、创建svn版本库目录

mkdir -p /var/svn/svnrepos

 

4、创建版本库

svnadmin create /var/svn/svnrepos

执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件

5、进入conf目录(该svn版本库配置文件)

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

 

6、设置帐号密码

vi passwd

[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

 

7、设置权限

vi authz

在末尾添加如下代码:

[/]

dan=rw

w=r

意思是版本库的根目录dan对其有读写权限,w只有读权限。

 

8、修改svnserve.conf文件

vi svnserve.conf

打开下面的几个注释:

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

使用下面这个命令进行测试是否正常

svn list svn://10.0.0.10svn list svn://10.0.0.10

 

svn: E200002: Unable to connect to a repository at URL 'svn://10.0.0.10'

svn: E200002: /var/svn/svnrepos/conf/svnserve.conf:19: Option expected

以上情况是因为/var/svn/svnrepos/conf/svnserve.conf文件配置没有顶格写

svn: E220003: Unable to connect to a repository at URL 'svn://10.0.0.10'

svn: E220003: Invalid authz configuration

以上情况是authz文件没有顶格写配置

 

9、启动svn版本库

svnserve -d -r /var/svn/svnrepos

 

10、在windows上测试()

新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN)

 

填写SVN的地址,如下图:

 

 

输入密码,如下图:

 

 

 

端口号:3690

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT #允许 3690 端口

service iptables save #保存 iptables 规则

 

 

Linux下SVN服务器自动更新文件到Web目录的方法

说明:

服务器操作系统:CentOS
服务器IP:127.0.0.1
SVN项目路径:/var/svn/svnrepos
SVN登录账号:root
SVN登录密码:root
Web站点根目录:/data/wwwroot/www.123.com
实现目的:

svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录

具体操作:

一、使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录

1. 首先导出一份svn的文件到网站目录

svn co file:///var/svn/svnrepos /data/wwwroot/www.123.com

 

 

2. 修改提交后执行文件”post-commit.tmpl

cd /var/svn/svnrepos/hooks

mv post-commit.tmpl  post-commit

chmod +x post-commit

vi post-commit

 

 

REPOS="$1"

REV="$2"

export LANG=zh_CN.UTF-8 #字符集,与服务器一致,可执行locale命令查看

svn update /data/wwwroot/www.123.com #更新svn

echo `date`,`whoami`,$REPOS,$REV >> /var/svn/svnrepos/hooks/svn_hook.log #记录时

间日志

chown -R root:root /data/wwwroot/www.123.com #将网站目录文件更改属主,>如果你是使用root用户更新的话

 

 

:wq! #保存退出

 

至此,LinuxSVN服务器自动更新文件到Web目录教程完成。

#!/bin/bash
read -p "输入svn的目录" svn_dir
#安装svn
yum install subversion
#创建svn版本库目录
mkdir -p $svn_dir
#创建版本库
svnadmin create $svn_dir
#设置账号密码,需要增加多个 直接按test格式添加
cat >>$svn_dir/conf/passwd<<EOF
test = 123456
EOF

#用户授权 等号前是组后面是用户,多个用户用逗号隔开
cat >>$svn_dir/conf/authz<<EOF
test = test

[/]
@test = rw
* =
EOF

#修改svnserve.conf配置文件
sed -i 's/# anon-access = read/anon-access = none/g' $svn_dir/conf/svnserve.conf
sed -i 's/# auth-access = write/auth-access = write/g' $svn_dir/conf/svnserve.conf
sed -i 's/# password-db = passwd/password-db = passwd/g' $svn_dir/conf/svnserve.conf
sed -i 's/# authz-db = authz/authz-db = authz/g' $svn_dir/conf/svnserve.conf

#启动svn服务
svnserve -d -r $svn_dir

#检查svn是否启动
ss -lnp|grep 3690

原文地址:https://www.cnblogs.com/xiaoyaoren/p/9418676.html