svn dump增量备份脚本

简介:

svn 增量备份脚本,

环境:系统,centos6.5,svn version 1.6.11,httpd Apache/2.2.15 (Unix)

APR 1.3.9, APR-Util 1.3.9,全部为yum编译


一些常用命令

svn ls -v /opt/svn/snn                  查看svn目录文件列表

svn --version                      查看svn版本

svnadmin create /opt/svn/snn            创建一个svn仓库

svn import /etc/issue file:///opt/svn/snn/1 -m t  导入数据


第一个脚本,完整备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#/bin/bash
#
# svn dump全备及增量备份脚本     (全备脚本,境备往下)
 
FILEDIR= /opt/svn/snn                 #SVN文件目录
BAUPDIR= /tmp/svn_back_data           #SVN备份保存地址
SVNCONF= /tmp/svn_back_conf           #SVN配置保存地址
VERSION= /tmp/svn_back_veri           #增量备份时必须使用版本号码
 
# 如果目录不存在那么就创建它
[ ! -d $BAUPDIR ] &&  mkdir  $BAUPDIR
[ ! -d $SVNCONF ] &&  mkdir  $SVNCONF
[ ! -d $VERSION ] &&  mkdir  $VERSION
 
#首先必须停止http跟svn服务
/sbin/service  httpd stop &> /dev/null
/sbin/service  svnserve stop  &> /dev/null
 
/usr/bin/svnadmin  dump $FILEDIR > $BAUPDIR/` date  +%F_%T`.firstsvn    &> /dev/null
/usr/bin/svnlook  youngest $FILEDIR > $VERSION /frist .txt               &> /dev/null 
 
/bin/cp  -i  /opt/svn/authfile/conf/ * $SVNCONF
/bin/cp  -i  /etc/httpd/conf .d /subversion .conf $SVNCONF
 
#备份完成再启动
/sbin/service  svnserve start  &> /dev/null
/sbin/service  httpd start    &> /dev/null


第二个脚本,增量备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#/bin/bash
#
#
# svn dump全备及增量备份脚本      (增量脚本) 两个脚本分开写
 
FILEDIR= /opt/svn/snn                     #SVN文件目录
BAUPDIR= /tmp/svn_back_data               #SVN备份保存地址
SVNCONF= /tmp/svn_back_conf               #SVN配置保存地址
VERSION= /tmp/svn_back_veri               #增量备份时必须使用版本号码
 
 
#首先必须停止http跟svn服务
/sbin/service  httpd stop &> /dev/null
/sbin/service  svnserve stop  &> /dev/null
 
 
for  in  {1..6}; do
 
     FRISTNUM=` cat  $VERSION /frist .txt`       #初始值 
     let  FRISTNUM=$FRISTNUM+1                #初始值加1开始备份数据,恢复时会报错
     /usr/bin/svnlook  youngest $FILEDIR > $VERSION /two .txt
     INCREMENT=` cat  $VERSION /two .txt`
     
     /usr/bin/svnadmin  dump --incremental -r $FRISTNUM:$INCREMENT $FILEDIR > $BAUPDIR /svn_increment_ $i
     sleep  3
     /usr/bin/svnlook  youngest $FILEDIR >  /tmp/svn_back_veri/frist .txt
     
     #备份完成再启动
     /sbin/service  svnserve start  &> /dev/null
     /sbin/service  httpd start    &> /dev/null
 
     sleep  24h
done



#备份的数据 测试时间自己把控,bash -x xx.sh 查看编译过程

-rw-r--r--. 1 root root 686827436 Jul 29 12:17 2016-07-29_12:16:43.firstsvn

-rw-r--r--. 1 root root      2320 Jul 29 12:20 svn_increment_1

#备份无数据时大小直接为零,恢复时可直接无视

-rw-r--r--. 1 root root         0 Jul 29 12:21 svn_increment_2

-rw-r--r--. 1 root root       973 Jul 29 12:21 svn_increment_3

-rw-r--r--. 1 root root      1422 Jul 29 12:22 svn_increment_4

-rw-r--r--. 1 root root      1871 Jul 29 12:22 svn_increment_5


#恢复如下

#恢复时从第一个开始复制比如:先从完整备份,然后第一,第二,第三依次类推

svnadmin create /opt/svn/snn   先建立新仓库,当然路径随便定义

svnadmin load /opt/svn/snn/ < 2016-07-29_12:16:43.firstsvn

svnadmin load /opt/svn/snn/ < svn_increment_1

svnadmin load /opt/svn/snn/ < svn_increment_3

svnadmin load /opt/svn/snn/ < svn_increment_4

svnadmin load /opt/svn/snn/ < svn_increment_5


第三个脚本:只能完整备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#/bin/bash
#
# svn脚本,此脚本只能全备,每周六凌晨1点整备份 0 01 * * 6 /bin/bash /tmp/xx.sh 
 
FILEDIR= /opt/svn/snn
BACKUPDIR= /tmp/svn_back_data
SVNCONF= /tmp/svn_back_conf
 
# 如果目录不存在那么就创建它
[ ! -d $BACKUPDIR ] &&  mkdir  $BACKUPDIR
[ ! -d $SVNCONF ] &&  mkdir  $SVNCONF
 
# svn数据全备脚本svnadmin hotcopy 恢复将目录文件反过来写
/usr/bin/svnadmin  hotcopy $FILEDIR/` date  +%F_%T`.svnback $BACKUPDIR
 
#将复制出来的配置文件打包
/bin/tar  zcfp $SVNCONF/` date  +%F_%H-%M`. tar .gz  /etc/httpd/conf .d /subversion .conf  /opt/svn/authfile/conf/ * --xattrs &> /dev/null


第三个脚本恢复方式

svnadmin hotcopy 仓库名称完整路径 < 备份的文件完整路径 




     本文转自812374156 51CTO博客,原文链接:http://blog.51cto.com/xiong51/1831723,如需转载请自行联系原作者



相关文章
|
10月前
清空文件夹下的SVN文件BAT脚本
清空文件夹下的SVN文件BAT脚本
87 0
|
10月前
批处理清理SVN文件BAT脚本
批处理清理SVN文件BAT脚本
58 0
SVN启停脚本
说明:特别注意红色部分,外部$1传入Msg函数时失效,故特此读取一遍再传入!执行时要给脚本加执行权限!#chmod 755 /scripts/svn   [root@kazihuo /scripts]# cat svn 1 #!/bin/bash 2 #by luomurui 2018/05/07 3 4 [ -f /etc/init.
1044 0
|
运维 Shell 网络安全
svn发布脚本
下面这个脚本应该日常运维的工作中应该经常使用的到,适合全量、增量发布。 假如svn地址是svn://192.168.1.1/trunk,下面有test、release等目录。每个目录下有当前日期命名的目录。
796 0
|
Python
一个简单的python脚本:从给出的svn url 取出文件
经常要到svn上取出部署文件,于是用python写了一个简单的取出脚本 点击(此处)折叠或打开 #!/usr/bin/python #coding=UTF8 url=r...
1421 0
|
1月前
|
存储 网络协议 Ubuntu
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
|
3月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
39 1
|
3月前
|
Apache 项目管理 数据安全/隐私保护
【cpolar】TortoiseSVN如何安装并实现公网提交文件到本地SVN服务器
【cpolar】TortoiseSVN如何安装并实现公网提交文件到本地SVN服务器
46 0