SVN dump备份与复原
1. 征象
- SVN布局
- SVN主目次: /svn/repos
- SVN设置文件: /svn/etc
2. 缘故分析
SVN数据与用户备份
hotcopy 与 dump
- Hotcopy直接复制存储库。 它速率很快,但它保存了底层文件体系等信息。 导入抄本的办事器必要是相反的版本,具有相反的设置等
- Dump是版本独立的。 这意味着导出的抄本可以被任何版本的svn使用
Gzip紧缩与xz紧缩
- Gzip紧缩速率快,但是紧缩比例没有xz高
- xz紧缩速率慢,但是紧缩比例高
在思索磁盘空间告急,内存和CPU资源使用富裕,可以使用xz紧缩,紧缩速率慢
在内存和CPU资源使用告急,不思索磁盘容量轻重,发起使用gzip紧缩,紧缩速率快
3. 处理办法
3.1 备份战略
每一个月举行全量备份,每隔8个小时举行增量备份
3.2 备份准备
当地备份目次:/data/Backup/SVN
- 赋予权限
- 将目次/data以及子目次对其他用户添加可读、可实行的权限
- 目次/data/Backup以及子目次添加对组backup可读、可写、可实行的权限
# 添加组backup
groupadd backup
# 添加用户cory到组backup
usermod -a -G backup cory
# 变动/data权限
chmod -R 775 /data
# 变动/data/Backup的用户组backup
chown -R root:backup /data/Backup
3.3 备份内容
- 数据备份
将dump出来的文件举行备份
- 设置文件备份
- 认证文件、权限文件备份
- SVNAdmin备份
iF.SVNAdmin办理界面备份
3.4 备份脚本
此版本只是基本版本,增量与全量备份未写在此中,请知悉
# TODO: Bup备份
# TODO: 其他备份目次
# TODO: 软编码 IP 等
# TODO: 定期删除
# TODO: 模块编码
# TODO: 增量备份与全量备份
set -e
password=$1
repo_dir="/svn/repos"
backup_dir="/data/Backup/SVN"
svnadmin="/usr/bin/svnadmin"
svnlook="/usr/bin/svnlook"
name=$(basename "$repo_dir")
revision=$($svnlook youngest "$repo_dir")
target="$backup_dir/$name-$revision.xz"
echo "$name-$revision.xz"