公司一台centos服务器一不小心被搞崩溃了,进不去系统,svn没有备份,泪牛满面~
重装系统后,发现repository文件夹还在,幸亏代码没放根目录。
安装svn
开始恢复,先安装svn
yum -y install subversion
迁移
大部分教程都是教从头创建repository,现在repository文件还在,该怎么操作?
网上搜了一通,给出两种迁移方案,一种是用dump备份,之后再复原
#备份
svnadmin dump repos/XX > 2414.dump
#建新仓库
svnadmin create /home/repos4
#load dump文件
svnadmin load /home/repos4 < 2414.dump
#启动SVN服务
svnserve -d -r /home/repos4
第二种方案,使用 svnsync 迁移SVN代码库(适用两台svn机器都可用的情况)
#1、建新仓库,参考方法一
#2、修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件
cp pre-revprop-change.tmpl pre-revprop-change
chmod 777 pre-revprop-change (给pre-revprop-change文件赋执行权限)
#3、修改 pre-revprop-change 脚本最后一行 为 exit 0
#4、初始化
svnsync init file:///home/yst/svn/svn-admin/repos5 svn://xx.xx.xx.xx
#svnsync init file:// 新机器仓库目录路径 源服务器的IP(可以通过http协议,还可以通过svn协议)
#5、同步
svnsync sync file:///home/yst/svn/svn-admin/repos5
#6、将原仓库的 uuid 复制过来,覆盖新服务器上的UUID
好像都挺麻烦,我使用的方式是,直接用svnserve启动原repository目录,这里注意端口是否开放
firewall-cmd --zone=public --add-port=3690/tcp --permanent # 开放3690端口
firewall-cmd --reload
#查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
#检查端口被哪个进程占用
netstat -lnpt |grep 5672
开机自启动
svn装好后,设置开机自启动,找到systemd里的svn配置文件 /lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
[Install]
WantedBy=multi-user.target
找到svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件
vi /etc/sysconfig/svnserve
将 OPTIONS="-d -r /var/svn" 改为 svn 版本库存放的目录,:wq 保存退出
在提示符下输入
systemctl enable svnserve.service
systemctl start svnserve.service
启动之后,出现permission denied错误
永久关闭SELINUX
需要重启:
vim /etc/selinux/config
修改为:
SELINUX=disabled