[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
[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
svnadmin --version
svnadmin create [仓库名]
svnadmin dump [仓库名] > [备份名称].dump
svnadmin load [仓库名] < [备份名称].dump
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的仓库根目录结构如下
[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
中配置我们的用户与角色
admin=zhangsan,lisi
[/]
@admin=rw
*=
其中admin
是角色,而zhangsan
与lisi
均是用户名。
而@admin=rw
表示该admin
角色可以拥有对SVN根路径的读与写权限。
passwd
配置用户对应的密码:
[users]
zhangsan=123456
lisi=123456
上面的意思是,用户zhangsan
的访问密码为123456
。
svnserve.conf
配置SVN的权限等信息:
[general]
# 匿名用户拥有读权限
anon-access = read
# 授权用户拥有读与写权限
auth-access = write
# 指定用户密码配置文件
password-db = passwd
# 指定角色用户配置文件
authz-db = authz
# 指定SVN的仓库地址
realm = /var/apps/svn/test
一般情况下,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资源上,鼠标右键,选择【TortoiseSVN】->【Relocate】,在弹出的对话框中,填写我们的SVN服务器地址,如下:
点击【OK】按钮,当弹出如下对话框时,此时就说明我们的SVN本地资源的重定向操作已经完成。