svn安装(http访问)、备份、增量备份、恢复

svn安装之http访问方式

一、SVN安装与apache配置

创建以下脚本svn_http_install.sh,用来安装svn以及httpd配置

##!/bin/bash

#安装svn以及依赖包

yum -y install apr apr-util sqlite neon subversion

#创建http支持svn配置文件

cat > /root/svn_http.conf <<Eof

<location /repos/>

DAV svn

SVNListParentPath On

SVNParentPath /var/svn/repos

AuthType Basic

AuthName "Subversion Repository"

AuthUserFile /var/svn/user

AuthzSVNAccessFile /var/svn/acl

Require valid-user

</Location>

Eof

#将http支持svn配置文件写入到httpd的配置文件中

cat /root/svn_http.conf >> /etc/httpd/conf.d/subversion.conf

#创建文件控制

cat > /var/svn/acl << Eof

[groups]

admin = admin

[/]

* =

Eof

touch /var/svn/user

touch /var/svn/log

echo "这个脚本默认创建svn管理员组,管理员用户:admin = admin"

二、svn库创建

  创建以下脚本svn_create.sh,用来创建svn库

首先将附件中的两个文件复制到/var/svn/路径下

#!/bin/bash

#定义库名称

echo "Enter the repo: "

read repo

real_path="file:///var/svn/repos/${repo}"

echo "Repo path: ${real_path}"

echo "Proceed (y/n)"

read proceed

#创建svn库

svnadmin create /var/svn/repos/${repo}

if [ ${proceed} = n ] || [ ${proceed} = Y ]

then

echo "Terminating ..."

exit 0

elif [ ${proceed} = y ] || [ ${proceed} = Y ]

then

echo "Initializing basic repository structure"

svn mkdir ${real_path}/{trunk,tags,branches} -m -F

#将附件中的两个文件复制到/var/svn/路径下,这两个文件用来定义svn策略,我修改这两个文件在svn提交的时候必须要有备注,而且备注信息必须要大于5个字符

cp /var/svn/pre-* "/var/svn/repos/${repo}/hooks/"

echo "Finished."

else

echo "Unknown Input. Terminating..."

exit 0

fi

chown apache:apache /var/svn/repos/${repo} -R

三、创建svn用户

   以下命令用来创建svn用户

# htpasswd -mdps /var/svn/user 用户名

New password:

Re-type new password:

#创建好svn库跟svn用户之后,手动重启一下httpd服务

然后就可以在浏览器(或者svn客户端)输入http://ip/repos/库名称

四、svn备份

   创建一个脚本用来实现svn库备份

##!/bin/bash

echo "此脚本是svn库数据的备份,不是增量备份"

date=`date +%Y%m%d`

mkdir -p /home/backup/svn/$date/{dump,repos,tar,newfile,revision}

echo "你是想备份整个库请输入(1),备份指定库请输入(0)"

read y

#通过一个if语句来判断是全部备份库,还是备份指定库

if [ $y -eq 1 ];then

#备份整个库,将所有的库文件信息保存到相应位置

ls /var/svn/repos/ > /home/backup/svn/$date/repos/$date.repos

fi

if [ $y -eq 0 ];then

echo "请输入svn需要备份的库的大体名称:"

echo "比如:输入tms,表示备份tms*开头的svn库"

read backup

#备份自己所需的库

ls /var/svn/repos/ | grep $backup > /home/backup/svn/$date/repos/$date.repos

fi

#通过一个for循环语句来备份所需库

for i in `cat /home/backup/svn/$date/repos/$date.repos`

do

mkdir -p /home/backup/svn/$date/dump/$i

#备份svn库,并保存到相应位置

svnadmin dump /var/svn/repos/$i > /home/backup/svn/$date/dump/$i/$i.dump

echo "$i dump finish!"

svnlook  youngest /var/svn/repos/$i

#创建svn最新版本信息文件

svnlook  youngest /var/svn/repos/$i > /home/backup/svn/$date/revision/$i.repos

done

#找出刚才备份的dump文件信息,保存到一个新文件

find /home/backup/svn/$date/dump/ -type f -ctime -1 > /home/backup/svn/$date/newfile/$date.newfile

#压缩dum文件为.tar.gz文件,通过dump的信息文件

tar -czvpf  /home/backup/svn/$date/$date.tar.gz  -T /home/backup/svn/$date/newfile/$date.newfile > /home/backup/svn/$date/tar/$date.newfile

#删除dump文件,通过上一步操作已经将dump文件压缩成一个压缩包了,所以可以删除dump文件了

rm -rf /home/backup/svn/$date/{dump,tar}

五、增量备份

  创建一个脚本用来实现增量备份svn_add_backup.sh,首先要有第四步操作

##!/bin/bash

date=`date +%Y%m%d`

mkdir -p /home/backup/svn/$date-add-backup/{dump,repos,revision}

echo "增量备份整个库请输入(1),增量备份指定库请输入(0)"

read y

echo "请输入以前的版本信息文件路径"

echo "比如/home/backup/svn/20151021,那么你就输入20151021"

read time

#用来判断是否全增量备份还是部分增量备份

if [ $y -eq 1 ];then

ls /var/svn/repos/ > /home/backup/svn/$date-add-backup/repos/$date.repos

fi

if [ $y -eq 0 ];then

echo "请输入svn需要备份的库的大体名称:"

echo "比如:输入tms,表示备份tms*开头的svn库"

read backup

ls /var/svn/repos/ | grep $backup > /home/backup/svn/$date-add-backup/repos/$date.repos

fi

for i in `cat /home/backup/svn/$date-add-backup/repos/$date.repos`

do

#定义一个变量old,之前全备份时留下的库版本信息

old=`cat /home/backup/svn/$time/revision/$i.repos`

#定义一个新变量new,用来留下当前最新版本信息

new=`svnlook  youngest /var/svn/repos/$i`

#通过一个if语句来判断库版本是否改变,有改变才执行一下语句,即是old < new

if [ "$old" -lt "$new" ];then

mkdir -p /home/backup/svn/$date-add-backup/dump/$i

svnlook  youngest /var/svn/repos/$i > /home/backup/svn/$date-add-backup/revision/$i.repos

#备份old版本到new版本

svnadmin dump /var/svn/repos/$i --revision $old:$new --incremental > /home/backup/svn/$date-add-backup/dump/$i/$i.dump

echo "$i add_backup finish!"

fi

done

六、svn恢复

  创建一个脚本用来实现svn库的恢复,前提是要先把dump文件复制到/home/backup/svn/dump/${repos}/${repos}.dump位置

##!/bin/bash

echo "请输入svn还原的库名称(先把原来的库文件删掉):"

read repos

rm -rf /var/svn/repos/${repos}

svnadmin create /var/svn/repos/${repos}

cp /var/svn/pre-* "/var/svn/repos/${repos}/hooks/"

chown apache:apache /var/svn/repos/* -R

svnadmin load /var/svn/repos/${repos} < /home/backup/svn/dump/${repos}/${repos}.dump

时间: 2024-11-06 13:48:10

svn安装(http访问)、备份、增量备份、恢复的相关文章

MySQL 备份和恢复(三)Xtrabackup实现热备:完全备份+增量备份

Percona XtraBackup is the world's only open-source, free MySQL hot backup software that performs non-blocking backups for InnoDB and XtraDB databases. With Percona XtraBackup, you can achieve the following benefits: Backups that complete quickly and

mysql全备份 + 增量备份

mysql全备份 + 增量备份 配置文件: 管理mysql配置文件,打开binlog日志 对于mysql数据库: log_bin = /var/log/mysql/mysql_bin.log server-id = 1(必须有,否则重启fail) 对于mariadb数据库: log_bin = /var/log/mysql/mysql-bin.log 修改配置文件后需要重启mysql服务: service mysql restart | /etc/init.d/mysql restart 可登陆

完全备份+增量备份完成即时点还原

完全备份+增量备份完成及时点还原 首先是一些感念 备份类型: 热备份,温备份,冷备份 热备份;读写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读,写操作均终止: 物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件中. 完全备份,增量备份和差异备份: 完全备份:备份全部数据 增量备份:仅备份上次完全备份或者增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份策略:每周完全+每日增量 完全备份;mysqldump 增量备份;备份二进制日志

MySQL数据库备份:完全备份+增量备份

MySQL数据库备份:完全备份+增量备份 ************************************************************************************** 计划任务: crontab -e  -u root 00 6  * * 1  /shell/mysqlbak.sh &> /dev/null 00 23  * * 2-7  /shell/mysqladd.sh &> /dev/null **************

xtrabackup安装及全备,增量备份,及恢复

xtrabackup特性: 1.支持热备份 2.支持对InnoDB.MyISAM,xtradb存储引擎的备份 3.备份过程快速.可靠 4.备份过程不会打断正在执行的事务 5.能够基于压缩等功能节约磁盘空间和流量 6.自动实现备份检验 7.还原速度快 (一)安装: 官网:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html ubuntu: wget https://repo.percona.

xtrabackup完全备份增量备份以及恢复

一.安装 1.配置Yum源 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 2.安装 yum install xtrabackup -y 二.修改Mysql主配置文件 my.cnf(根据编译安装的参数进行设置,RPM安装可省略) [mysqld] datadir=/data/mysqldb basedir=/usr/local/mysql/ 三.开始备份 1.完全

Mysql -- 完全备份 + 增量备份 + 恢复

文章目录 一.数据库备份的分类 二.MySQL 完全备份 (1)完全备份特点 (2)mysqldump 备份库 1.针对单个库进行完全备份 2.针对多个库进行完全备份 3.对所有库进行完全备份 (3)恢复数据库操作 1.source 命令 2.使用 mysql 命令 (4)mysqldump 备份表 1.备份表 2.备份表的结构 (5)恢复表的操作 三.MySQL 增量备份 一.数据库备份的分类: 1.从物理与逻辑的角度,备份可以分为: 物理备份:对数据库操作系统的物理文件(数据文件.日志文件等

linux mysql 物理备份-增量备份

大家好,我是霸王卸甲,今天给大家带来的是数据库中的物理备份,物理备份又包括增量备份和差异备份,今天要讲的是增量备份!!!!!!! 物理备份 + binlog 准备工作:PERCONA XtraBakuo它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份.它不暂停服务创建Innodb热备份:为mysql做增量备份:在mysql服务器之间做在线表迁移:使创建replication更加容易:备份mysql而不增加服务器的负载.percona是

mysql全备份+增量备份笔记总结

备份基础知识 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行: 温备(warm backup): 服务在线,但仅支持读请求,不允许写请求: 热备(hot backup):备份的同时,业务不受影响. 这种类型的备份,取决于业务的需求,而不是备份工具 MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具 完全备份:full backup,备份全部字符集. 增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使

MySQL 完全备份 + 增量备份+完全恢复

简介 1·完全备份与增量备份的概念2·使用 mysqldump 完全备份3·使用 mysqldump 进行表结构备份4·完全备份恢复的两种方法5·使用 flush logs 进行增量备份6·增量备份恢复7·基于时间点与位子的恢复8·MySQL 备份思路 完全备份与增量备份的概念 1·MySQL 完全备份:是对整个数据库的备份.数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,它也是增量备份的基础.它的优点:备份与恢复操作简单,缺点是数据存在大量的重复,占用大量的备份空间,备份时间长.2·