时间:2021-05-19
我们来看一个简单的svnsync例子:
主SVN服务器: http://mastersvn/project1
svnsync镜像SVN服务器上的部署:http://backupsvn/project1
第一步:建立仓库
cd /home/svn
svnadmin create –fs-type fsfs /home/svn/project1
chmod 777 –R project1
第二步:镜像初始化
svnsync init http://backupsvn/project1 http://mastersvn/project1
第三步:更改配置文件
cd /home/svn/project1/hooks
cp pre-revprop-change.tmpl pre-revprop-change
vi pre-revprop-change
注销所有语句,在语句前加入#即可,退出保存
第四步:同步
svnsync sync http://backupsvn/project1 --username username --password password
已提交版本 9。
复制版本 9 的属性。
已提交版本 10。
复制版本 10 的属性
……………
但是在实际运用中,经常会发生SVN库被lock的情况
svnsync: Couldn't get lock on destination repos after 10 attempts
这不得不让我们感觉头痛地手动使用改命令解锁
svn propdel svn:sync-lock --revprop -r0 http://backupsvn/project1
写到这里,大家不由对svnsync有了个初步的认识了吧,就一个字,烦!!!而且同步速度很慢!!!
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来是此文的重点部分:
SVN新的镜像备份方案:ssh + rsync + crontab(任务计划))
什么是SSH?
SSH 是更灵活、更安全的 telnet 和 rlogin 替代品。它在开发项目中得到广泛使用,以提供访问控制和安全的数据传输。
什么是rysnc?
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
什么是crontab?
Crontab是Linux操作系统下的一个命令,可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。(类似windows下的任务计划)
方案拓扑图:(请看附件)
主SVN服务器环境:
SVN仓库根目录: /home/svn (project1,project2,project3三个仓库)
SVN服务器IP: 192.168.100.80
镜像SVN服务器环境:
SVN仓库根目录:/home/svn (无仓库,无需建立,镜像时会直接复制过来并保持文件属性)
SVN服务器IP: 192.168.100.81
#主SVN服务器安装部分:
(1)
SVN安装部分(略)
(2)
安装rsync部分
rpm -qa | grep rsync (所有系统是否有安装过rsync)
rpm -e rsyncxxx (删除以前安装过的rsync)
wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.4.tar.gz (下载rsync源码安装包)
tar zxvf rsync-3.0.4.tar.gz (解压)
cd rsync-3.0.4
./install.sh (安装)
接下来我们就可以输入rsync --version命令来测试下是否安装成功了。
rsync
version 3.0.3
protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, no symtimes
rsync comes with ABSOLUTELY NO WARRANTY.
This is free software, and you
are welcome to redistribute it under certain conditions.
See the GNU
General Public Licence for details.
(3) 开启rsync服务器端
/usr/local/bin/rsync --daemon (开启rsync服务)
vi /etc/rc.d/rc.local
在末尾加入/usr/local/bin/rsync --daemon (目的是让服务器每次重启后都能自动运行此进程)
#镜像SVN服务器安装部分:
(1)SVN安装部分(略)
(2)安装rsync部分
rpm -qa | grep rsync (所有系统是否有安装过rsync)
rpm -e rsyncxxx (删除以前安装过的rsync)
wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.4.tar.gz (下载rsync源码安装包)
tar zxvf rsync-3.0.4.tar.gz (解压)
cd rsync-3.0.4
./install.sh (安装)
接下来我们就可以输入rsync --version命令来测试下是否安装成功了。
接下来我们的配置就完成了,让我们用命里那个测试下。
同步命令:
rsync -vzrtopgu --progress --delete root@192.168.100.80:/home/svn /home/
输入用户名root
输入root的密码。
65309 100%
224.57kB/s
0:00:00 (xfer#507, to-check=2187/23106)
svn/project1/db/revs/202
29655 100%
99.86kB/s
0:00:00 (xfer#508, to-check=2186/23106)
svn/project1/db/revs/203
7242 100%
23.19kB/s
0:00:00 (xfer#509, to-check=2185/23106)
sent 15928 bytes
received 521860019 bytes
4404016.43 bytes/sec
total size is 12240235825
speedup is 23.45
传输完成,这次镜像过程就结束了。
12下一页阅读全文
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
SVN服务备份操作步骤1、准备源服务器和目标服务器源服务器:192.168.1.250目标服务器:192.168.1.251root/rootroot2、对目标
本文实例讲述了Python实现SVN的目录周期性备份方法。分享给大家供大家参考。具体如下:起因:今天用SVN时,不小心把远程SVN服务器上的目录删掉了,然后在本
运行一次就能够把gitolite服务器上的仓库备份到本地.第一次运行会创建远程仓库的本地镜像,以后每次运行会把本地镜像更新.本程序只支持ssh方式其他的gits
linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分
0x0测试环境总部生产服务器与分部备份服务器要求实现异地数据备份,环境如下**centos6.5**生产服务器目录:/home/zytest/files备份服务