linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本

Centos6.1详细搭建svn独立服务器

1准备源码包:2个源码包一个是Subversion-1.6.20.tar.gz一个是Subversion-deps-1.6.20.tar.gz

源码安装目录:/usr/local/svn/版本库的用户文件目录/usr/local/svn/conf/passwd.conf

版本库的权限控制文件目录:/usr/local/svn/conf/authz.conf需要的有glibc gcc libstdc++ openssl openssl-devel zlib

2安装报错

c397124cdbe9d4cd730624a93c8299ab.png

解决方法挂载本地iso镜像文件使用centos6.1光盘自带安装包安装 挂载本地iso镜像

./configure –prefix=/usr/local/svn/

--with-neon=注什么都不加

注:在编译安装之前要先安装openssl和openssl-devel,否则以下错误

checking openssl/opensslv.h usability... no

checking openssl/opensslv.h presence... no

checking for openssl/opensslv.h... no

configure: error: We require OpenSSL; try

--with-openssl

configure failed for serf

解决:yum -y install openssl openssl-devel

3安装完成之后添加环境变量在/etc/profile添加PATH=/usr/local/svn/bin:$PATH

4source /etc/profile一下/usr/local/svn/bin下的命令可以使用

5测试一下安装是否成功svnserve –version

fda609a4f7771a4a0449b9a0c1f26e52.png

6创建版本库

1创建版本库目录

84c6b31728cf21a41d46d4d4de27bb32.pngmkdir –p /var/svndata/9000

Svnadmin create /var/svndata/9000其中如果想在任意目录使用svnadmin请添加环境变量

2创建完成之后生成如下文件其中的conf目录下放置有版本库配置文件svnserve.conf

用户密码存放文件passwd组权限控制文件authz我这里的用户密码配置文件和组权限

文件放置在/usr/local/svn/conf/下名字分别是:passwd.conf

authz.conf

191364e695b5dcf3324ee34687420a26.png

3:配置版本库配置文件如下

de11d8ae7207736da46c8be9e2fe1b59.png

4注意对用户配置文件的修改不用重启svn立即生效。

5开机自动开启svn服务在/etc/rc.d/rc.local加入svnserve –d –r

/var/svndata就可以实现svn自动开机自启动

附另外一种方法把svn做为服务器启动

1.在/etc/init.d/目录下建立svn运行脚本,并授于可执行权限

2.[root@svn ~]# vim /etc/init.d/svn

3.#!/bin/bash

4.# build this file in /etc/rc.d/init.d/svn

5.# chmod 755 /etc/rc.d/init.d/svn

6.# chkconfig: - 85 15

7.# description: svn server

8.SVN_HOME=/var/svndata

9.if [ ! -f "/usr/local/svn/bin/svnserve" ]

10.then

11.echo "svnserver startup: cannot start"

12.exit

13.fi

14.case "$1" in

15.start)

16.echo "Starting svnserve..."

17./usr/local/svn/bin/svnserve -d --listen-port 3690 -r $SVN_HOME #这个3690是默认端口

18.echo "Finished!"

19.;;

20.stop)

21.echo "Stoping svnserve..."

22.killall svnserve

23.echo "Finished!"

24.;;

25.restart)

26.$0 stop

27.$0 start

28.;;

29.*)

30.echo "Usage: svn { start | stop | restart } "

31.exit 1

32.esac

33.[root@svn ~]# chmod 755 /etc/init.d/svn

34.[root@svn ~]# chkconfig svn on

35.[root@svn ~]# /etc/init.d/svn start

注意如果脚本里不加#

chkconfig:空格-空85空格15的话在使用chkconfig

–add  svn会提示

082d5516d6dc5105686b13eb29c32de6.png

正确的设置如下:

65049c4488d9c433d6896c27659ac723.png

添加成功之后如下显示

ad34991857ce825d786291267f100db5.png

设置等级345开机自启动

b6520f6d893195351b144e6ad9d1c70e.png

个人喜欢第二种方法简单一目了然不过原理都一样总结一下

开启svn服务:svnservice

–d –r /var/svndata

关闭svn服务:killall

svnservice或者kill -9 pid

脚本开启svn服务:service

svn start

脚本关闭svn服务:service svn

stop

脚本重启svn服务:service

svn restart

注意:/etc/ini.d/svn提示错误以前也遇到过是windowslinux下删除windows换行符^M

启动时发现一个问题:用%c读入的代码都会报wa。后来发现跟scanf有关。在linux下使用%c会读到\n和\r两个字符。所以需要将^M(也就是\r)字符删掉删除方法不少。下一步:配置svn用户和组直接上截图:

密码:

9dd653d635cd4a25eae8c17799480836.png

下面是组

92cc258576c416d8cccf155bd2645652.png

注意这里的组适合大型项目,个人感觉比较有条理性

注意svn配置文件需要顶格写 登录用户中间有空格 如:svnadmin = svnadmin

左边是登录的用户名右边是密码

测试成功之后项目导入然后下边是备份脚本

要执行成功备份脚本必须使用ssh-kegen

rsa回车回车回车。。

然后用scp ~/.ssh/id_rsa.pub下并重命名为authorized.keys

31fcb5b8f3ccfc8afbbe405c48ef77b2.png

然后定时执行备份脚本

Crontab –e –u root

4ad096187b6f0602f515268ebca0b36b.png

下面是备份脚本内容

e4434881872ace17413d9b3b7ca50cb7.png

查看本机上的定时任务crontab –l

136033305dc66881762fc359f31aa406.png

查看远程服务器是否生成文件注意脚本里面使用svnadmin hotcopy命令使用的是绝对路径

04205a11bffffca132e6ff22c8798cfa.png

以上过程亲测,并经过测试运行正常,如果以上有什么错误,请你一定不吝赐教,E-Mail:china_vision#outlook.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值