1.备份(转储)SVN(Subversion)存储库
从SVN(Subversion)存储库创建转储
svnadmin dump /path/to/reponame > /path/to/reponame.dump
真实的例子
svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump
Gzip创建的转储
gzip -9 /path/to/reponame.dump
真实的例子
gzip -9 /backups/testrepo.dump
带有单线的SVN转储和Gzip转储
svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz
真实的例子
svnadmin dump /var/www/svn/testrepo | gzip -9 > /backups/testrepo.dump.gz
2.恢复(加载)SVN(Subversion)存储库
解压转储文件
gunzip /path/to/reponame.dump.gz
真实的例子
gunzip /backups/testrepo.dump.gz
创建空的SVN(Subversion)存储库
svnadmin create /path/to/reponame
真实的例子
svnadmin create /var/www/svn/testrepo
设置SVN(Subversion)存储库权限
chown -R svnuser:svngroup /path/to/reponame
## If you use SELinux then remember also set security context ##
chcon -R -t httpd_sys_content_t /path/to/reponame
## Following enables commits over http ##
chcon -R -t httpd_sys_rw_content_t /path/to/reponame
真实的例子
chown -R apache:apache /var/www/svn/testrepo
## Set security context ##
chcon -R -t httpd_sys_content_t /var/www/svn/testrepo
## Following enables commits over http ##
chcon -R -t httpd_sys_rw_content_t /var/www/svn/testrepo
从SVN(Subversion)备份将数据加载到存储库
svnadmin load /path/to/reponame < /path/to/reponame.dump
真实的例子
svnadmin load /var/www/svn/testrepo < /backups/testrepo.dump
3.自动SVN(Subversion)存储库备份
编辑Crontab
crontab -e
将SVN转储命令添加到Crontab
@daily svnadmin dump /path/to/reponame > /path/to/reponame.dump
## OR ##
@weekly svnadmin dump /path/to/reponame > /path/to/reponame.dump
真实的例子
@weekly svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump
具有时间和日期以及Gzip的更高级的SVN转储示例
@daily svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame-$(date +"\%Y-\%m-\%d-\%T").dump.gz
真实的例子
@daily svnadmin dump /var/www/svn/testrepo | gzip -9 > /backups/testrepo-$(date +"\%Y-\%m-\%d-\%T").dump.gz