linux 备份svn
下面具体描述备份的方法:
===============
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 > $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`;
4)配置/etc/crontab文件
配置 /etc/crontab 文件,指定每周六执行weekly_backup.pl,指定周一到周五执行daily_backup.pl;
具体步骤俺就不啰嗦了.
5)备份恢复检查
在月底恢复检查中或者在灾难来临时,请按照如下步骤进行恢复:恢复顺序从低版本逐个恢复到高版本;即,先恢复最近的一次完整备份 weekly_full_backup.071201(举例),然后恢复紧挨着这个文件的增量备份 daily_incremental_backup.071202,再恢复后一天的备份071203,依次类推。如下:
user1>mkdir newrepos
user1>svnadmin create newrepos
user1>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>zcat daily_incremental_backup.071202 | svnadmin load newrepos
转载于:https://www.cnblogs.com/Mygirl/p/3177332.html
linux 备份svn相关推荐
- linux备份svn仓库脚本,Centos详细搭建svn以及备份脚本
Centos6.1详细搭建svn独立服务器 1准备源码包:2个源码包一个是Subversion-1.6.20.tar.gz一个是Subversion-deps-1.6.20.tar.gz 源码安装目录 ...
- linux备份svn仓库脚本,SVN服务备份操作步骤分享
SVN服务备份操作步骤 1.准备源服务器和目标服务器 源服务器:192.168.1.250 目标服务器:192.168.1.251 root/rootroot 2.对目标服务器(251)装SVN服务器 ...
- linux svn导入dump文件,Linux下svn安装配置及备份还原
一.源码安装 SVN可以yum和源代码安装,上面已经写了yum安装,此处将使用源代码实现SNV的安装.具体步骤如下. 1)安装必要的环境 #yum -y groupinstall "Desk ...
- Linux下svn服务器迁移
Linux下svn服务器迁移 1.介绍迁移方式: 1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案. 2.主要迁移方式: svnadmin dump svnadmin h ...
- 工作随笔——使用svnsync实时备份SVN版本库
前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...
- linux下svn的用法(转)
linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...
- Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...
1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...
- Linux下svn搭建配置流程
Linux下svn搭建配置流程 一. 源文件编译安装.源文件共两个,为: 1. 下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...
- 在Windows上同步SVN代码库到备份SVN机器上
在Windows上同步SVN代码库到备份SVN机器上 SVN源库IP: 192.168.0.200 SVN目标库(备份库)IP:192.168.0.62 visualSVN Server版本: ...
最新文章
- 【2018-01-22】HTML-表单及表单元素
- Ovirt 安装部署方法
- 《妙解Hibernate 3.X》读书笔记一-Hibernate概述及环境搭建
- R语言可视化学习笔记之ggridges包
- swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程
- 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )
- 上行数据和下行数据什么意思_上行带宽和下行带宽什么意思?
- jQuery框架-1.jQuery基础知识
- 制作不同方向的三角形(border属性)
- 用R语言实现深度学习情感分析
- 永宏plc和台达vfd-m变頻器modbs rtu通讯程序 史上最好用的plc和变頻器rtu通讯程序
- 实现AlphaGo(一):围棋的基本规则和代码设计思路
- CSDN_MySQL入门技能树学习整理知识点
- 支付宝单笔转账到支付宝账户(用于分成或者退款)
- 新媒体运营教程:短视频剧本创作技巧
- 网络安全架构:如何理解P2DR模型
- Element ui 修改 <el-collapse 的 <el-collapse-item 标题字体大小
- Linux rpm 命令 【转】
- wifi热点创建和自动连接
- 基于学术研究于NASA官网GPM卫星数据下载详细教程
热门文章
- 银屑病与肠道菌群(调研手稿一)
- Connection to node -1 (Desktop/192.168.0.102:9091) could not be established.
- CHUNGHOP k-6868万能空调遥控器的自己家用电器的代码+自己家里的宽带账号+机顶盒型号+桌子+椅子+垫子高度
- function “printf“ declared implicitly
- yarn界面中的Minimum Allocation和Maximum Allocation与yarn-site.xml中参数的对应关系
- datatable删除csv中的一列
- yelee主题中加入revolvermaps插件
- linux 命令终端显示-bash-4.2#解决方法
- opengl坐标转换
- html元素嵌套与并列,HTML的元素嵌套规则