下面具体描述备份的方法:
===============

1、svnadmin dump备份工具
------------------------
    这是subversion官方推荐的备份方式。

1)定义备份策略:
       备份频度:每周六进行一次全量备份,每周日到周五进行增量备份
       备份地点:备份存储路径到/home/backup/svn/
       备份命名:全量备份文件名为:weekly_fully_backup.yymmdd,增量备份文件命名为:daily-incremental-backup.yymmdd
       备份时间:每晚21点开始
       备份检查:每月末进行svnadmin load恢复试验。
    2)建立全量备份脚本:
       在~/下建立一个perl脚本文件,名为weekly_backup.pl,执行全量备份,并压缩备份文件,代码如下(本代码只针对一个库的备份,如果是多个库请做相应改动):
#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "weekly_fully_backup.".`date +%Y%m%d`;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;

print "Backing up to revision $youngest/n";
my $svnadmin_cmd="svnadmin dump --revision 0:$youngest $svn_repos >$backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #记录备份的版本号
print LOG $youngest;
close LOG;
#如果想节约空间,则再执行下面的压缩脚本
print "Compressing dump file.../n";
print `gzip -g $backup_dir/$next_backup_file`;

3)建立增量备份脚本:
    在全量备份的基础上,进行增量备份:在~/下建立一个perl脚本文件,名为:daily_backup.pl,代码如下:

#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "daily_incremental_backup.".`date +%Y%m%d`;

open(IN,"$backup_dir/last_backed_up");
$previous_youngest = <IN>;
chomp $previous_youngest;
close IN;

$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;
if ($youngest eq $previous_youngest)
{
  print "No new revisions to backup./n";
  exit 0;
}
my $first_rev = $previous_youngest + 1;
print "Backing up revisions $youngest .../n";
my $svnadmin_cmd = "svnadmin dump --incremental --revision $first_rev:$youngest $svn_repos &gt; $backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,"&gt;$backup_dir/last_backed_up"); #记录备份的版本号
print LOG $youngest;
close LOG;
#如果想节约空间,则再执行下面的压缩脚本
print "Compressing dump file.../n";
print `gzip -g $backup_dir/$next_backup_file`;
   4)配置/etc/crontab文件
   配置 /etc/crontab 文件,指定每周六执行weekly_backup.pl,指定周一到周五执行daily_backup.pl;
   具体步骤俺就不啰嗦了.
   5)备份恢复检查
   在月底恢复检查中或者在灾难来临时,请按照如下步骤进行恢复:恢复顺序从低版本逐个恢复到高版本;即,先恢复最近的一次完整备份 weekly_full_backup.071201(举例),然后恢复紧挨着这个文件的增量备份 daily_incremental_backup.071202,再恢复后一天的备份071203,依次类推。如下:
user1&gt;mkdir newrepos
user1&gt;svnadmin create newrepos
user1&gt;svnadmin load newrepos < weekly_full_backup.071201
user1>svnadmin load newrepos < daily_incremental_backup.071202
user1>svnadmin load newrepos < daily_incremental_backup.071203
....

如果备份时采用了gzip进行压缩,恢复时可将解压缩和恢复命令合并,简单写成:
user1>zcat weekly_full_backup.071201 | svnadmin load newrepos
user1&gt;zcat daily_incremental_backup.071202 | svnadmin load newrepos

转载于:https://www.cnblogs.com/Mygirl/p/3177332.html

linux 备份svn相关推荐

  1. linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本

    Centos6.1详细搭建svn独立服务器 1准备源码包:2个源码包一个是Subversion-1.6.20.tar.gz一个是Subversion-deps-1.6.20.tar.gz 源码安装目录 ...

  2. linux备份svn仓库脚本,SVN服务备份操作步骤分享

    SVN服务备份操作步骤 1.准备源服务器和目标服务器 源服务器:192.168.1.250 目标服务器:192.168.1.251 root/rootroot 2.对目标服务器(251)装SVN服务器 ...

  3. linux svn导入dump文件,Linux下svn安装配置及备份还原

    一.源码安装 SVN可以yum和源代码安装,上面已经写了yum安装,此处将使用源代码实现SNV的安装.具体步骤如下. 1)安装必要的环境 #yum -y groupinstall "Desk ...

  4. Linux下svn服务器迁移

    Linux下svn服务器迁移 1.介绍迁移方式: 1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案. 2.主要迁移方式: svnadmin dump svnadmin h ...

  5. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  6. linux下svn的用法(转)

    linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...

  7. Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...

    1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...

  8. Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  9. 在Windows上同步SVN代码库到备份SVN机器上

    在Windows上同步SVN代码库到备份SVN机器上 SVN源库IP: 192.168.0.200   SVN目标库(备份库)IP:192.168.0.62   visualSVN Server版本: ...

最新文章

  1. 【2018-01-22】HTML-表单及表单元素
  2. Ovirt 安装部署方法
  3. 《妙解Hibernate 3.X》读书笔记一-Hibernate概述及环境搭建
  4. R语言可视化学习笔记之ggridges包
  5. swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程
  6. 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )
  7. 上行数据和下行数据什么意思_上行带宽和下行带宽什么意思?
  8. jQuery框架-1.jQuery基础知识
  9. 制作不同方向的三角形(border属性)
  10. 用R语言实现深度学习情感分析
  11. 永宏plc和台达vfd-m变頻器modbs rtu通讯程序 史上最好用的plc和变頻器rtu通讯程序
  12. 实现AlphaGo(一):围棋的基本规则和代码设计思路
  13. CSDN_MySQL入门技能树学习整理知识点
  14. 支付宝单笔转账到支付宝账户(用于分成或者退款)
  15. 新媒体运营教程:短视频剧本创作技巧
  16. 网络安全架构:如何理解P2DR模型
  17. Element ui 修改 <el-collapse 的 <el-collapse-item 标题字体大小
  18. Linux rpm 命令 【转】
  19. wifi热点创建和自动连接
  20. 基于学术研究于NASA官网GPM卫星数据下载详细教程

热门文章

  1. 银屑病与肠道菌群(调研手稿一)
  2. Connection to node -1 (Desktop/192.168.0.102:9091) could not be established.
  3. CHUNGHOP k-6868万能空调遥控器的自己家用电器的代码+自己家里的宽带账号+机顶盒型号+桌子+椅子+垫子高度
  4. function “printf“ declared implicitly
  5. yarn界面中的Minimum Allocation和Maximum Allocation与yarn-site.xml中参数的对应关系
  6. datatable删除csv中的一列
  7. yelee主题中加入revolvermaps插件
  8. linux 命令终端显示-bash-4.2#解决方法
  9. opengl坐标转换
  10. html元素嵌套与并列,HTML的元素嵌套规则