这篇文章纯属记录,不做教程使用,毕竟之前写过关于《Linux环境下SVN代码库从旧服务器迁移到新服务器的步骤详解》的文章,喜欢折腾的童鞋可以结合这两篇文章批量备份和还原SVN仓库,为什么这么说呢?因为上次备份之后我就感觉项目站点太多了,十几二十几个每次都一个一个使用命令太慢了,耽误时间,所以这次趁着服务器到期迁移就直接尝试使用批量备份和还原。
【新服务器】批量创建仓库代码:
新建空白文件,取名“svncreate.sh”(名称可自拟)
#!/bin/bash
# 定义要创建的版本库目录列表
repo_dirs=("/www/svndata/库1" "/www/svndata/库2" "/www/svndata/库2")
# 遍历列表并创建每个版本库
for dir in "${repo_dirs[@]}"; do
svnadmin create "$dir"
done
先确定服务器SVN安装目录,然后一次创建版本库目录。
svnadmin create /www/svndata/库1
【旧服务器】批量备份脚本:
新建空白文件,取名“svndump.sh”(可自拟)
#!/bin/bash
# 定义要备份的版本库目录列表
repo_dirs=("/www/svndata/库1" "/www/svndata/库2" "/www/svndata/库3")
# 遍历列表并备份每个版本库
for dir in "${repo_dirs[@]}"; do
svnadmin dump "$dir" > "${dir}.dump"
done
命令执行完成后,会在“/www/svndata/目录下生成”库1、2、3.dump格式的备份文件,直接下载到本地,然后在【新服务器端】上传这么备份好的文件。
svnadmin dump /www/svndata/库1/ > 库1.dump
【新服务器】批量还原脚本:
新建空白文件,取名“loadsvn.sh”(可自拟)
#!/bin/bash
# 定义SVN仓库目录和备份文件目录
svn_repos_dir="/www/svndata"
backup_files_dir="/www/svndata"
# 定义需要还原的SVN仓库名称和对应的备份文件名称
repos_backup_map=(
"库1:库1.dump"
"库2:库2.dump"
"库3:库3.dump"
)
# 遍历需要还原的SVN仓库名称和对应的备份文件名称
for repo_backup in "${repos_backup_map[@]}"; do
repo_name="${repo_backup%%:*}"
backup_file="${repo_backup#*:}"
# 执行还原命令
svnadmin load "${svn_repos_dir}/${repo_name}" < "${backup_files_dir}/${backup_file}"
done
命令执行完成后之前的数据就都回来了,这个时间可能会有点长,如果服务器配置较低可以少还原几次,别整太大死机就不好弄了。
svnadmin load /www/svndata/库1 < 库1.dump
【新服务器】批量checkout(检出)
新建空白文件,取名“checkoutsvn.sh”(可自拟)
#!/bin/bash
# 定义SVN仓库URL和本地目录
svn_repos_url="svn://IP"
local_dir="/www/wwwroot"
# 定义需要同步的SVN仓库名称和对应的本地目录
repos_local_map=(
"SVN库名:/同步网站目录"
)
# 遍历需要同步的SVN仓库名称和对应的本地目录
for repo_local in "${repos_local_map[@]}"; do
repo_name="${repo_local%%:*}"
local_path="${repo_local#*:}"
# 执行同步代码命令
svn checkout "${svn_repos_url}/${repo_name}" "${local_dir}${local_path}"
done
命令执行完成后就会同步源代码的版本库,同样配置低的服务器少量运行,以免死机。
svn checkout svn://IP/svn库名 /www/wwwroot/同步网站目录
至此备份还原SVN版本库就已经全部操作完成,当然毕竟是批量操作,过程中可能会出现一些问题,如果出现问题那么久参考之前的文章手动恢复,毕竟单个恢复有问题可以看的清晰一些,好了,此文结束,有问题的留言反馈吧,即便真的有问题我也不会解决了,毕竟技术有限,告辞!!!