SVN的备份与还原
Posted 张侦毅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN的备份与还原相关的知识,希望对你有一定的参考价值。
文章目录
操作环境及相关指令
操作环境
- 操作系统
[root@master backup]# cat /proc/version
Linux version 5.2.2-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)) #1 SMP Sun Jul 21 04:19:28 EDT 2019
- SVN软件版本
[root@master conf]# rpm -qa subversion
subversion-1.7.14-14.el7.x86_64
相关指令
防火墙相关指令
- 查询防火墙状态
systemctl status firewalld
- 关闭防火墙
systemctl stop firewalld
- 打开防火墙
systemctl start firewalld
端口号相关指令
- 查看端口号是否被占用
fuser -v -n tcp [端口号]
- 防火墙添加端口
firewall-cmd --add-port=[端口号]/tcp
- 查看防火墙端口列表
firewall-cmd --list-port
SVN相关指令
- 查看SVN版本号
svnadmin --version
- 创建仓库
svnadmin create [仓库名]
- 创建备份
svnadmin dump [仓库名] > [备份名称].dump
- 创建还原
svnadmin load [仓库名] < [备份名称].dump
- 启动SVN
svnserve -d -r [仓库地址]
文件传输
- 服务器间文件传输
scp xac [用户名]@[目标服务器地址]:[目标路径]
备份与还原
备份
创建仓库
svnadmin create /var/apps/svn/test
执行备份
svnadmin dump test > test.dump
此时生成的test.dump
文件就是我们的备份文件
一般情况下,公司级别的Gitlab备份文件大小最起码也在1G以上,而假如说备份的服务器与需要还原的服务器本身并不是一台服务器,此时就需要我们进行两台服务器间的文件传输,如下:
scp xac [用户名]@[目标服务器地址]:[目标路径]
上面的用户名
指的是目标服务器的用户名,而目标服务器地址
就是目标服务器的IP地址,目标路径
指的是我们要将文件发送到目标服务器的哪个文件夹路径下。
当我们点击【Enter】按键后,系统会提示让我们输入目标服务器的密码,正确填写上目标服务器的密码,我们就可以将备份文件发送到目标服务器上的指定目录。
SVN相关配置信息
SVN的仓库根目录结构如下
[root@master test]# ll
总用量 8
drwxr-xr-x. 2 root root 54 3月 4 15:47 conf
drwxr-sr-x. 6 root root 233 3月 4 15:47 db
-r--r--r--. 1 root root 2 3月 4 15:47 format
drwxr-xr-x. 2 root root 231 3月 4 15:47 hooks
drwxr-xr-x. 2 root root 41 3月 4 15:47 locks
-rw-r--r--. 1 root root 229 3月 4 15:47 README.txt
其中我们的SVN配置文件就位于conf
中,其中的文件如下:
[root@master conf]# ll
总用量 12
-rw-r--r--. 1 root root 1080 3月 4 15:47 authz
-rw-r--r--. 1 root root 309 3月 4 15:47 passwd
-rw-r--r--. 1 root root 3090 3月 4 15:47 svnserve.conf
- authz配置文件
authz
中配置我们的用户与角色
admin=zhangsan,lisi
[/]
@admin=rw
*=
其中admin
是角色,而zhangsan
与lisi
均是用户名。
而@admin=rw
表示该admin
角色可以拥有对SVN根路径的读与写权限。
- passwd配置文件
passwd
配置用户对应的密码:
[users]
zhangsan=123456
lisi=123456
上面的意思是,用户zhangsan
的访问密码为123456
。
- svnserve.conf配置文件
svnserve.conf
配置SVN的权限等信息:
[general]
# 匿名用户拥有读权限
anon-access = read
# 授权用户拥有读与写权限
auth-access = write
# 指定用户密码配置文件
password-db = passwd
# 指定角色用户配置文件
authz-db = authz
# 指定SVN的仓库地址
realm = /var/apps/svn/test
SVN软件安装
一般情况下,CentOS自身就集成了SVN,其版本信息如下:
[root@master conf]# svnadmin --version
svnadmin,版本 1.7.14 (r1542130)
编译于 Apr 11 2018,02:40:28
版权所有 (C) 2013 Apache 软件基金会。
此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。
Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
正常情况下,我们直接拿来使用就可以了,但是如果系统本身并没有集成SVN,那么我们可以通过手动安装的方式来安装该软件,如下。
yum -y install subversion-1.7.14-14.el7.x86_64
启动软件,我们以刚才创建的test
软件为例,其启动为:
svnserve -d -r /var/apps/svn/test
还原
注意事项
重要的事情说三遍,那就是,还原会清空SVN仓库的原有数据,因而谨慎!谨慎!再谨慎!!!
当我们确定要还原后,我们便可以执行下述还原指令:
svnadmin load test < test.dump
可能操作
- 查看端口号是否被占用
[root@master svn]# fuser -v -n tcp 3690
用户 进程号 权限 命令
3690/tcp: root 116963 F.... svnserve
- 终止进程
kill -9 [进程号]
假如说如果要是在一台服务器上备份,在另外一台服务器中还原,则需要我们将访问的端口号直接暴漏在外网中,也就是说需要将端口号3690暴漏在外网中。
- 防火墙添加访问端口
firewall-cmd --add-port=3690/tcp
- 查看防火墙访问端口
[root@master svn]# firewall-cmd --list-port
8083/tcp 10010/tcp 3690/tcp
访问
打开TortoiseSVN浏览器,在地址栏中输入我们SVN的访问地址,如下:
在上面弹出的对话框中,输入账号与密码,然后我们就可以正常使用了。
SVN地址重定向
假如说由于SVN服务器地址出现了变更,在这种情况下,我们要么将以前的文件资源全部重新下载一遍,当然,这种方式并不推荐;要么则是使用SVN地址的重定向功能。
鼠标在本地SVN资源上,鼠标右键,选择【TortoiseSVN】->【Relocate】,在弹出的对话框中,填写我们的SVN服务器地址,如下:
点击【OK】按钮,当弹出如下对话框时,此时就说明我们的SVN本地资源的重定向操作已经完成。
以上是关于SVN的备份与还原的主要内容,如果未能解决你的问题,请参考以下文章