之前博主介绍过优秀的代码版本管理工具Git,今天介绍下svn。
SVN是集中式版本控制系统,版本库存放在中央服务器,必须联网才能工作。
1、安装svn
centos:yum install subversion -y
ubuntu:apt-get install subversion -y
2、创建库目录 mkdir /opt/.svn/zxkj/
svnadmin create /opt/.svn/zxkj/
3、启动svn网络服务: svnserve -d -r /home/svn,
其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址,
指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库。
/home/svn指定svn数据仓库存放的目录位置。
4、检查svn服务器是否已经启动(svn默认使用3690端口):netstat -an | grep 3690。
svn的默认端口是3690,在ubuntu里查看端口打开情况,命令是 sudo netstat -anp。
svn服务重新启动命令为:svnserve -d -r /home/svn
如果需要停止svn服务,则用此命令:sudo killall svnserve
5、配置文件
cd conf/
vi svnserver.conf
anon-access = none #匿名用户权限
auth-access = write #认证用户权限
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
vi authz
qianduan = ws
yunwei = lwj
chanpin = cjr
ui =xll,wg
[/]
jyh = rw
@chanpin = rw
@yunwei = rw
@houduan = rw
[/zxkj/UI]
jyh = rw
@ui = rw
@qianduan = r
* =
vi passwd
jyh = jyh888
ws = ws888
6、设置svn服务开机启动:
在init.d目录建立一个脚本文件svnd.sh: cd /etc/init.d ,
用gedit打开svnd.sh进行编辑: sudo gedit svnd.sh,
输入svnd.sh内容如下(/home/svn 为svn仓库路径):
#!/bin/bash
#svnserve startup
svnserve -d -r /home/svn
保存退出。
修改权限:
update-rc.d svnd.sh defaults
chmod 777 svnd.sh
Linux作为svn客户端:
svn checkout svn_path local_path --username=user --password=123456
工作中使用示例:
#!/bin/bash
TIME_DIR=`date -d yesterday +%Y%m%d`
svn mkdir /root/讯代理日常巡检/${TIME_DIR}
for i in api01 api02 web01 web02 forward01 forward02 houtai;do
SOURCE_DIR="/root/myfiles/xdaili_log/uptime/${i}/`date -d yesterday +%Y_%m_%d`_system_check.txt"
DEST_DIR="/root/讯代理日常巡检/${TIME_DIR}/"
cp ${SOURCE_DIR} ${DEST_DIR}
mv /root/讯代理日常巡检/${TIME_DIR}/`date -d yesterday +%Y_%m_%d`_system_check.txt /root/讯代理日常巡检/${TIME_DIR}/${i}.txt
done
svn add /root/讯代理日常巡检/${TIME_DIR}/*
svn commit -m "" /root/讯代理日常巡检/