Svn在Windows下实现自动全量增量备份和异地备份

合集下载

svn备份实施方案

svn备份实施方案

svn备份实施方案为了确保数据安全,备份成为了极为重要的措施之一。

在使用SVN进行版本控制的情况下,也同样需要制定有效的备份实施方案。

下面将介绍一种基于SVN备份的实施方案。

1. 定期备份首先,我们需要制定一个定期备份的计划。

可以选择每天、每周或每月备份一次。

这取决于数据的重要性和变动频率。

一般情况下,每天备份一次是比较合理的选择。

2. 备份目标我们需要清楚地定义备份的目标。

SVN备份分为两个层次:仓库级备份和服务器级备份。

- 仓库级备份:备份每个仓库的版本信息、分支和标签等- 服务器级备份:备份服务器上的所有仓库以及配置信息等对于仓库级备份,可以使用SVN自带的`svnadmin hotcopy`命令进行备份。

对于服务器级备份,可以直接备份服务器上的SVN主目录。

3. 存储介质选择选择合适的存储介质来存放备份数据。

常见的选择有硬盘、网络存储和云存储等。

根据实际情况选择合适的存储介质,并确保备份数据能够安全地存放在该介质上。

4. 备份策略备份策略包括完全备份和增量备份。

- 完全备份:每次备份都将所有数据都备份一遍,独立存放。

这种备份方式保证了每次备份的完整性,但是需要较大的存储空间和备份时间。

- 增量备份:每次备份只备份自上次备份以来的新增和修改的数据。

这种备份方式可以节省存储空间和备份时间,但是恢复数据时需要依赖完整备份和增量备份一起使用。

在实施备份方案时,可以根据备份的频率和数据的重要性选择合适的备份策略。

5. 自动化备份为了减少人为失误,提高备份的稳定性和可靠性,建议使用自动化备份工具进行备份。

可以使用脚本编写自动备份的任务,并定时执行。

这样可以确保备份的及时性和准确性。

6. 数据完整性验证备份完成后,需要对备份数据进行验证,确保备份的完整性和可用性。

可以通过还原备份文件,检查还原后的数据是否与源数据完全一致来进行验证。

7. 定期恢复测试定期进行备份的恢复测试非常重要。

恢复测试可以帮助我们检查备份的可用性和恢复的有效性。

Windows下SVN的备份方案

Windows下SVN的备份方案

Windows下SVN的备份方案版本控制最关键的一件事是保证数据的安全性,不能因为磁盘损坏,程序故障造成库的无法挽回的错误,为此必需制定较完备的备份策略.在subversion中,我们有三种备份方式:完全备份,增量备份和同步版本库.1,完全备份:最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上,就可以了.但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造马备份的结果不够准确,失去备份的作用,为此xubversion 提供了"svnadmin hotcopy"的命令,可以防止这种问题.比如有如下的版本库:D:/svnroot├─project1│├─conf│├─dav│├─db││├─revprops││├─revs││└─transactions│├─hooks│└─locks└─project2├─conf├─dav├─db│├─revprops│├─r evs│└─transactions├─hooks└─locks如果要把project1备份到D:/svnrootbackup目录下,只需要运行:svnadmin hotcopy d:/svnroot/project1 d:/svnrootbackup/project1ps:如果我们目录下有很多版本库,需要为每个版本库写这样一条语句备份,必需想办法优化这个过程.为此,建立以下的2个bat文件.simplebackup.bat:@echo 正在备份版本库%1......@%SVN_HOME%/bin/svnadmin hotcopy %1 %BACKUP_DIRECTORY%/%2@echo 版本库%1成功备份到了%2!backup.bat:echo offrem Subversion的安装目录set SVN_HOME="D:/Subversion"rem 所有版本库的父目录set SVN_ROOT=D:/svnrootrem 备份的目录set BACKUP_SVN_ROOT=D:/svnrootbakset BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%/%date:~0,10%if exist %BACKUP_DIRECTORY% goto checkBackecho 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log mkdir %BACKUP_DIRECTORY%rem 验证目录是否为版本库,如果是则取出名称备份for /r %SVN_ROOT% %%I in (.) do @if exist"%%I/conf/svnserve.conf" %SVN_ROOT%/simplebackup.bat "%%~fI" %%~nI goto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。

SVN仓库自动备份方法

SVN仓库自动备份方法

SVN仓库自动备份方法SVN(Subversion)是一种版本控制系统,用于有效地管理文件和目录的版本。

为了确保数据的安全性和可靠性,将SVN仓库自动备份是至关重要的。

下面是一种SVN仓库自动备份的方法,包括以下步骤:1. 选择合适的备份存储介质:可以选择将备份存储在本地服务器的硬盘上,也可以将其存储在云存储服务(如Amazon S3、Google Cloud Storage)或其他远程服务器上。

选择恰当的备份存储介质是自动备份的第一步。

2. 创建备份脚本:使用Shell脚本、Python脚本或其他脚本语言编写一个备份脚本,用于执行SVN仓库的备份操作。

该脚本包含以下功能:a.检查SVN仓库的最新修改时间:使用SVN命令或其他相关命令,获取SVN仓库的最新修改时间。

这将用于判断是否需要进行备份操作。

b.备份SVN仓库:如果最新修改时间与上一次备份时间不一致,说明SVN仓库已经发生了变化,需要进行备份操作。

使用SVN命令将SVN仓库导出到指定的备份存储介质中,确保所有版本的文件和历史记录都可以恢复。

c.更新备份时间:备份完成后,更新备份时间,以便下一次备份可以正确判断是否需要备份。

3. 定时执行备份脚本:使用计划任务(Cron)或其他任务调度工具,设置定时任务,以便自动执行备份脚本。

可以选择每天、每周或每月等频率进行备份。

确保备份脚本能够准时执行,以保证SVN仓库的定期备份。

4.监控备份过程:在备份过程中,监控备份脚本的执行情况,确保备份操作成功完成。

可以在脚本中添加日志记录,以便对备份过程进行跟踪和分析。

如果备份失败或出现错误,及时采取相应的措施进行修复。

5.测试备份数据的恢复:定期测试备份数据的恢复功能,以确保备份数据的完整性和可用性。

可以选择随机选择几个版本进行恢复,并进行验证,确保所有文件和历史记录都可以正确恢复。

以上便是一种SVN仓库自动备份的方法。

通过创建备份脚本、定时执行备份脚本、定期监控备份过程和测试备份数据的恢复功能,可以确保SVN仓库的数据安全性和可靠性。

Svn版本管理备份策略

Svn版本管理备份策略

解决办法
SVN命令错误:检查 SVN命令是否正确, 可以查阅SVN手册或 在线文档。
权限问题:检查备份 文件的读写权限,确 保有足够的权限进行 备份。
文件锁定:在备份过 程中,确保没有其他 进程锁定备份文件。
备份文件损坏
解决办法
磁盘故障:定期对磁盘进行检查 和维护,确保磁盘的稳定性和可 靠性。
原因:文件写入错误、磁盘故障 、病毒攻击等。
03
SVN版本备份常见问题及解决办法
备份中断
解决办法
SVN服务器故障:定期备份SVN 服务器,并对备份文件进行完整 性检查。
原因:网络中断、SVN服务器故 障、磁盘空间不足等。
网络故障:检查网络连接,确保 网络畅通。
磁盘空间不足:定期清理磁盘空 间,确保有足够的空间进行备份 。
备份错误
原因:SVN命令错误 、权限问题、文件锁 定等。
SVN与常用的版本控制系统(如CVS)相比,具有更好的性 能和更丰富的功能,如版本控制、冲突解决、历史记录查询 等。
SVN服务器架设
1 2
选择SVN服务器
可以选择多种SVN服务器,如Apache、 VisualSVN Server等。
安装SVN服务器
根据所选服务器类型进行安装,并进行必要的 配置。
文件写入错误:检查备份文件的 完整性,如有需要可以重新备份 。
病毒攻击:安装杀毒软件,定期 进行全盘扫描,防止病毒攻击备 份文件。
04
SVN版本备份实际操作
Windows系统SVN备份
安装VisualSVN Server
在Windows服务器上安装VisualSVN Server,以便在Windows平台上进行版本控制和备份。
周备份

Svn版本管理备份策略

Svn版本管理备份策略

Subversion备份策略的制定
1 2
备份策略选择
根据企业的实际需求和资源情况,选择合适的 备份策略,如全备份、增量备份或差异备份。
备份周期
确定备份的频率和时间,如每日、每周或每月 备份一次。
3
备份存储位置
为备份数据选择一个可靠和安全的存储位置, 可以本地存储或云端存储。
Subversion备份的常见类型和频率
02
SVN在不断地更新和发展,不断地修复漏洞和改进性能,目前已经发布了多个 重要版本,每个版本都带来了新的特性和改进。
03
SVN已经被广泛应用于各种行业和领域,例如软件开发、数据管理、文档管理 等,并且已经得到了广泛的应用和认可。
02
Sub件和目录。
差异备份
03
每月进行一次差异备份,记录自上次完整备份以来所有发生变
化的文件和目录。
对备份数据进行加密和安全保护
数据加密
对备份数据进行加密,以防止未经授权的访问和数据泄露。
安全存储
将备份数据存储在安全的位置,以防止自然灾害、人为破坏等不可抗力因素 造成的数据丢失。
对备份数据进行测试和验证
05
备份策略的监控与恢复
备份策略的监控
备份频率
确定备份的频率,如每天、每周或每月备份一次。
备份时间
选择备份的最佳时间,如系统使用率较低的时段。
备份存储位置
选择备份数据的存储位置,可以是本地磁盘、外部存储设备或云端存储。
数据恢复的方法和步骤
01
定期演练
定期演练备份恢复过程,确保在意外情况下可以迅速恢复数据。
数据安全
备份Subversion数据可以确保在发生硬件故障、软件错误或 恶意攻击时,能够恢复完整的版本历史记录,避免数据丢失 和信息安全风险。

服务器备份策略全量备份增量备份和差异备份的优缺点分析

服务器备份策略全量备份增量备份和差异备份的优缺点分析

服务器备份策略全量备份增量备份和差异备份的优缺点分析服务器备份是保障数据安全和恢复的重要措施之一。

为了有效管理和保护服务器数据,备份策略起到至关重要的作用。

而备份策略中的全量备份、增量备份和差异备份是常用的备份方式。

本文将对这三种备份方式的优缺点进行分析,以便读者在选择备份策略时能够做出明智的决策。

1. 全量备份全量备份是将服务器上的所有数据进行完整备份的策略。

在首次备份时,会备份所有的数据,并生成一个完整的备份副本。

之后的备份将重复此过程,每次备份都是完整备份。

优点:- 数据完整性:全量备份能够完整地备份所有数据,包括新增、修改和删除的数据,保证数据的完整性。

- 简单恢复:由于备份是完整的,恢复数据时只需恢复最近的一次备份即可,简单方便。

缺点:- 高存储需求:每次备份都备份所有数据,导致存储需求较高。

随着数据量的增长,备份所需的存储空间也会不断增加。

- 长时间备份:由于备份的是全部数据,备份所需的时间相对较长。

对于大型服务器和大数据量的场景,备份过程可能需要较长的时间窗口。

2. 增量备份增量备份是只备份发生变化的数据,与上一次备份形成差异的部分。

首次备份后,每次备份只备份与上一次备份有变化的数据。

优点:- 节省存储空间:只备份变化的数据,大大减少了备份所需的存储空间。

相比于全量备份,增量备份的存储需求较小。

- 较快备份速度:由于只备份变化的数据,备份速度较快,节省了备份时间窗口。

缺点:- 需要完整链路:恢复数据时,必须保证备份链路的完整性,即先恢复完整的全量备份,再根据增量备份进行差异恢复,否则无法正常恢复数据。

- 恢复复杂:增量备份需要按照备份链路顺序逐层进行恢复,恢复过程比全量备份复杂一些。

3. 差异备份差异备份是在每次全量备份之后,只备份自上次全量备份后的所有差异数据。

与增量备份不同,差异备份只与最近一次全量备份有关。

优点:- 存储空间节省:与全量备份相比,差异备份只备份自上次完整备份后的差异数据,因此存储需求较少。

windows计划任务如何设置自动备份,计划任务设置异地备份方法

windows计划任务如何设置自动备份,计划任务设置异地备份方法

windows计划任务如何设置自动异地备份?对于重要数据,我们除了本地备份之外,一般还会设置异地备份,进一步提高容灾能力,那么具体如何实现呢?1、新建一个文本文档,输入:net use \\net_host_ip_address\ipc$ password/user:usernamexcopy /e /H "C:\backup" "\\10.144.129.17\share_dir\"其中:net_host_ip_address:提供共享目录的主机的ip地址(或者主机名)password:能够访问共享目录的用户名username:访问共享目录的用户名根据实际情况修改为自己的参数。

2、其中C:\backup是需要备份的文件夹,\\10.144.129.17\share_dir\是远程服务器的共享文件夹地址,这里是用来作为备份存储的路径,设置完成后保存。

3、在该文本文档上方点击右键,在弹出的菜单中选中重命名,把后缀修改为bat,在任意空白处点击一下,在弹出的窗口中点击确定。

4、依次点击开始—windows管理工具—任务计划程序。

5、点击创建任务,根据提示输入新任务的名称和描述。

6、依次点击触发器—新建,设置该计划的执行时间以及执行频率,设置完成后点击确定。

7、依次点击操作—新建,在操作中选中启动程序,在下方点击浏览,选中刚刚新建的脚本,然后依次点击确定返回即可。

8、另外我们还可以通过一些专业的备份软件来设置备份,下面小编以大势至服务器备份软件为例进行介绍。

百度下载该系统,安装后返回电脑桌面找到快捷方式,双击打开,根据提示输入帐号和密码,点击确定进入。

9、点击新增计划,在源备份路径后点击浏览,选中需要备份的文件夹,点击确定。

10、在备份目标路径中输入远程服务器共享文件夹路径,点击添加,根据提示输入帐号和密码,点击确定。

11、点击备份开始时间,设置备份开始的日期和时间。

svn备份实施方案

svn备份实施方案

svn备份实施方案SVN备份实施方案一、背景介绍随着信息技术的不断发展,数据备份已成为企业信息化管理中的重要环节。

在软件开发过程中,版本控制是非常重要的一环,而SVN (Subversion)作为一款流行的版本控制系统,被广泛应用于软件开发团队中。

为了保障软件开发过程中的数据安全,制定一套SVN 备份实施方案显得尤为重要。

二、备份目标1. 保障软件开发过程中的数据安全,防止数据丢失;2. 提高数据恢复的效率,缩短系统故障期间;3. 保证备份数据的完整性和一致性;4. 降低备份和恢复过程对系统性能的影响。

三、备份策略1. 定期全量备份:每周对SVN服务器进行一次全量备份,保证所有数据都能够被备份。

2. 增量备份:每日对SVN服务器进行增量备份,仅备份当天有变动的数据,降低备份数据量和备份时间。

3. 数据冗余备份:将备份数据存储在不同的地点,防止因某一地点发生灾难导致备份数据丢失。

四、备份流程1. 定期全量备份流程:a. 停止SVN服务;b. 备份SVN仓库数据至备份服务器;c. 启动SVN服务。

2. 增量备份流程:a. 判断当天是否有SVN数据变动;b. 若有变动,备份变动的数据至备份服务器;c. 若无变动,不进行备份操作。

3. 数据冗余备份流程:a. 将备份数据同步至不同的备份服务器;b. 定期检查备份数据的完整性和一致性。

五、备份存储1. 选择可靠的备份存储设备,如磁带库、硬盘阵列等;2. 确保备份存储设备的稳定性和可靠性;3. 定期检查备份存储设备的健康状态,及时替换损坏的设备。

六、备份恢复1. 定期进行备份恢复测试,验证备份数据的可用性;2. 确保备份数据能够在系统故障时快速恢复;3. 制定详细的数据恢复流程和操作手册,以备不时之需。

七、备份监控1. 配置备份监控系统,实时监控备份任务的执行情况;2. 定期检查备份日志,及时发现备份异常并进行处理;3. 设定报警机制,一旦发现备份异常立即通知相关人员处理。

Windows下SVN双机备份实现

Windows下SVN双机备份实现

备份机上操作1.新建Repository2.在hooks下新建pre-revprop-change.bat空白文件3.执行初始化svnsync init file:///{之前新建立的Repository} {源代码地址URL}4.执行同步svnsync sync file:///{之前新建立的Repository}执行完上述步骤后备份机上代码已经和需要备份的代码完全一致源机操作(就是正常使用的代码服务器)在该机上操作时为了保证提交代码后自动同步到备份机器上1.在hooks目录下建立post-commit.bat文件(文件内容如下),每次提交代码该文件会自动执行以保证同步到备份服务器set SVN_HOME="C:\Program Files\VisualSVN Server"%SVN_HOME%\bin\svnsync sync --non-interactive {备份机URL} --username xxx --password xxxx2.赋予Visual Server执行bat文件的权限,如下图将超级管理员作为Visual Server登陆的账户3.由于备份机一般采用https的登陆验证方式,所以需要在源机上先执行一遍同步保证操作系统记住验证的信息,执行如下%SVN_HOME%\bin\svnsync sync --non-interactive {备份机URL}系统会提示是否信任,输入p然后可能会需要输入系统管理员的密码和备份机上的SVN用户名和密码(备份机上建立的Repository的用户名和密码)4.备份机网络延迟或者不通可能造成提交代码时报下面的类似错误。

该错误只是没有将提交的代码同步到备份机上,实际上代码已经提交到源机器上成功。

该错误可以忽略,因为每次有提交都会检查两边是否同步,只要最后提交的代码成功,之前提前失败未同步的代码也会同步过去。

Windows下SVN版本库的自动备份脚本

Windows下SVN版本库的自动备份脚本

Windows下SVN版本库的自动备份脚本自动将F:\SVN下的所有的版本库备份到F:\BAK目录下,并用bzip2自动压缩。

可以通过计划任务定期调用。

为了支持压缩需要在SVN_BIN下方置 bzip2.exe,cygwin1.dll。

1、BACKUP.bat@echo offrem 设置SVN可执行文件所在的目录set SVN_BIN=F:\svn-win32-1.4.0\binrem 设置SVN代码库所在的驱动器盘符set SVN_DRV=F:rem 设置SVN代码库所在的目录set SVN_DIR=svnrem 设置备份文件存贮的路径set SVN_BAK=F:\bakrem 如果备份目录不存在,则创建之if not exist %SVN_BAK% md %SVN_BAK%rem SVN代码库根目录的完整路径set SVN_DB=%SVN_DRV%\%SVN_DIR%%SVN_DRV%cd \cd %SVN_DIR%echo 开始备份SVN代码库...for /F %%d in ('dir /AD /B') do call %SVN_DB%\work.bat %%decho 备份SVN代码库完毕...%SVN_DRV%cd \@echo on2、WORK.batset SVN_SRC=%1for /F "tokens=1,2,3 delims=- " %%1 in ('Date /T') do set DATE=%%1-%%2-%%3for /F "tokens=1,2 delims=:" %%1 in ('time /T') do set TIME=%%1-%%2if not exist %SVN_BAK%\%DATE% md %SVN_BAK%\%DATE% setBAK_TO=%SVN_BAK%\%DATE%\%SVN_SRC%@%DATE%@%TI ME%.svnecho 开始将 %SVN_DB%\%SVN_SRC% 备份到 %BAK_TO% ...%SVN_BIN%\svnadmin.exedump %SVN_DB%\%SVN_SRC% >> %BAK_TO%echo 开始压缩 %BAK_TO% ...rem %SVN_BIN%\gzip -9 %BAK_TO%%SVN_BIN%\bzip2 %BAK_TO%echo 压缩 %BAK_TO% 完毕echo 将 %SVN_DB%\%SVN_SRC% 备份到 %BAK_TO% 完毕set BAK_TO=set SVN_SRC=。

SVN版本库无损迁移与自动备份

SVN版本库无损迁移与自动备份

SVN版本库无损迁移与自动备份引:最近正在做版本库迁移和自动备份,在网上找过一些相关资料,但都比较凌乱,让人很纠结,相信很多网友会遇到相同的问题,笔者根据自己的整理和实践结果总结了一套可操作(经过实际验证)的方案,打算用两篇博客与大家分享一下,供大家参考。

一、业务目标1、在不改变原来版本库的内容和版本号的前提下,把原来分散在多个服务器上的各个版本库统一迁移到一台服务器上的新版本库上。

2、实现新版本库的定时自动备份。

二、相关指令1、svnadmin dump命令语法svnadmin dump Repository_Path [-r LOWER[:UPPER]] [--incremental] (1)svnadmindump命令用于导出整个Repository或Repository下的某个范围的修订版本。

(2)参数说明:Repository_Path是版本库的路径,[-rLOWER[:UPPER]]用于指定导出的修订版本范围,由参数-r和两个用:号隔开阿拉伯数字组成。

例如:-r 0:100表示导出才版本0到版本100之间的所有修订版,-r是revision的缩写。

--incremental,它使用增量方式来导出版本,即每次都只导出自上一个版本以来的修改。

这样的好处是第一:可以把一个大的文件切分成若干个小的文件。

第二:在版本库已经存在的情况下,我们只需要每次导出修改的部分,不需要每次都导出整个版本库的内容。

甚至可以通过hook脚本,每天晚上自动将当天的修改dump出来做备份用。

2、svnadmin load命令语法svnadmin load Repository_Path(1)svnadminload命令用于从标准输入流/其它流中导入版本库,(2)参数说明:Repository_Path是要导入的目标版本库。

3、dump和load的输出/入重定向svnadmin dump oldRepository> dumpfilesvnadminload newRepository < dumpfile默认情况下dump和load命令分别输出到默认输出设备(屏幕)和从默认输入设备(键盘)导入。

通过SVN镜像实现异地备份

通过SVN镜像实现异地备份

通过SVN镜像实现异地备份一、目的通过SVN再带工具svnsync来实现版本库的同步,实现异地开发中心版本库向北京中心的实时同步。

二、搭建SVN服务器异地开发中心SVN服务器已经投入使用,需要在北京本地安装配置SVN 服务器。

以Linux操作系统为例:1、下载SVN安装所需的软件sqlite-amalgamation-3.6.13.tar.gzapr-1.2.7.tar.gzapr-util-1.2.7.tar.gzhttpd-2.2.13.tar.bz2subversion-1.6.6.tar.bz22、检查SVN是否安装成功在安装服务器上执行svnadmin命令,是否有相应。

3、在北京中心创建镜像库#mkdir –p /data/svn //创建SVN库存储目录#svnadmin create mir //创建镜像库,名字可根据实际调整#netstat -nltp //如果有3690端口在监听,说明运行成功4、修改配置文件#cd /data/svn/mir/conf将svnserve.conf去掉下面几行的注释:anon-access = readauth-access = writepassword-db = passwd注意: 上述三行前面不能留有空格,否则要出错。

5、修改密码文件修改密码文件passwd,添加账号和密码三、配置手工同步1、修改同步文件#cp pre-revprop-change.tmpl pre-revprop-change#chmod +x pre-revprop-change#chmod 777 pre-revprop-change2、同步初始化#svnsync init file:///data/svn/mir/ http://IP(远程地址)/svn/test_dir此时北京mir库就是远程test_dir库的异地镜像拷贝3、手工同步#svnsync sync svn://IP(远程地址) --username username --password password //IP地址、username、password根据实际填写通过手工同步方式比较麻烦,需要配置自动同步来实现实时自动同步四、配置实时同步自动实时同步需要在异地源SVN服务器上进行配置。

全量备份增量备份差异备份说明

全量备份增量备份差异备份说明

全量备份增量备份差异备份说明作为⼀名运维⼯程师,在⽇常⼯作中会时常对各类重要数据进⾏备份,为了⽅便管理,运⽤何种备份⽅案是⾄关重要的。

今天在此简单说明下Linux运维中的备份种类:全量备份、增量备份、差异备份。

⼀、⾸先说⼀下什么是存档属性?“存档”属性表⽰此⽂件、⽂件夹的备份属性,只是提供给备份程序使⽤,当未选中时,备份程序就会认为此⽂件已经“备份过”,可以不⽤再备份了。

所以,当备份程序备份了⼀个⽂件时,默认是未选中“存档”属性。

换句话说备份软件把已经备份过的⽂件的存档属性去掉,表⽰已经备份。

如果对该⽂件进⾏修改,会重新添加存档属性。

下次启动备份软件,检查存档属性,没有的就是上次备份以来没改变的,有的就是上次备份以来由改变的,这样就可以实现“增量备份” -只备份变化了的数据。

⼆、备份种类介绍1)全量备份备份全部选中的⽂件夹,并不依赖⽂件的存档属性来确定备份那些⽂件。

(在备份过程中,任何现有的标记都被清除,每个⽂件都被标记为已备份,换⾔之,清除存档属性)。

全量备份就是指对某⼀个时间点上的所有数据或应⽤进⾏的⼀个完全拷贝。

实际应⽤中就是⽤⼀盘磁带对整个系统进⾏全量备份,包括其中的系统和所有数据。

这种备份⽅式最⼤的好处就是只要⽤⼀盘磁带,就可以恢复丢失的数据。

因此⼤⼤加快了系统或数据的恢复时间。

然⽽它的不⾜之处在于,各个全备份磁带中的备份数据存在⼤量的重复信息;另外,由于每次需要备份的数据量相当⼤,因此备份所需时间较长。

2)增量备份增量备份是针对于上⼀次备份(⽆论是哪种备份):备份上⼀次备份后(包含全量备份、差异备份、增量备份),所有发⽣变化的⽂件。

(增量备份过程中,只备份有标记的选中的⽂件和⽂件夹,它清除标记,既:备份后标记⽂件,换⾔之,清除存档属性)。

增量备份是指在⼀次全备份或上⼀次增量备份后,以后每次的备份只需备份与前⼀次相⽐增加和者被修改的⽂件。

这就意味着,第⼀次增量备份的对象是进⾏全备后所产⽣的增加和修改的⽂件;第⼆次增量备份的对象是进⾏第⼀次增量备份后所产⽣的增加和修改的⽂件,如此类推。

windows下svn备份

windows下svn备份

windows下svn备份windows下svn备份2010-02-08 14:29一、采用svn自带备份功能进行完全备份,需要下面两个文件,放在仓库的父目录里面。

1)simplebackup.bat@echo 正在备份版本库%1......@%SVN_HOME%\bin\svnadminhotcopy %1 %BACKUP_DIRECTORY%\%2@echo 版本库%1成功备份到了%2!(注意:此文件内容就这三行,无需做任何修改)2)backup.batecho offrem Subversion的安装目录set SVN_HOME="F:\Program Files\Subversion"rem 所有版本库的父目录set SVN_ROOT=E:\svnrepositoryrem 备份的目录set BACKUP_SVN_ROOT=F:\share\all(如果是局域网中的另一台机子,那么等号后面可以写\\192.168.0.*\share\all,不过要特别注意的是,share文件夹必须设成共享,既要能读还要能写,这样才能把仓库写进去)setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10% if exist %BACKUP_DIRECTORY% goto checkBackecho 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log mkdir %BACKUP_DIRECTORY%rem 验证目录是否为版本库,如果是则取出名称备份for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simplebackup.bat "%%~fI" %%~nIgoto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。

SVN版本库备份和恢复

SVN版本库备份和恢复

SVN版本库备份和恢复1.版本库备份1.1.svnadmin dump⽅式备份此⽅法借助的是Subversion官⽹推荐的svnadmin dump备份⽅式,它的优点是⽐较灵活,既可以进⾏全量备份⼜可以进⾏增量备份,并提供了版本恢复机制。

缺点是如果版本过⼤,如版本数增加到数万、数⼗万条时,则dump的过程很慢,备份时耗时,恢复备份库时更耗时,不利于快速进⾏灾难恢复,此⽅法建议在版本库较⼩的情况下采⽤。

a) 全量备份:命令格式为:svnadmin dump 版本库路径及名称 -r 导出的版本号 > 备份版本库存放路径及名称(-r是revision的缩写,也可以--revision代替)或 svnadmin dump 版本库路径及名称> 备份版本库存放路径及名称(不添加版本号时默认备份最⾼版本号)例如:1. 对project版本库的前10个版本进⾏备份,将备份⽂件保存到H盘的svn_back/dump⽂件夹中,进⼊cmd命令⾏,输⼊以下命令:svnadmin dump E:\Repository\project -r 10 > H:\svn_backup\dump\project.dump点击回车后,如图所⽰,已经将project版本库中的前10个版本进⾏备份。

2. 对project版本库的所有版本进⾏备份,将备份⽂件保存到H盘的svn_backup⽂件夹中,进⼊cmd命令⾏,输⼊以下命令:svnadmin dump F:\Repository\project>H:\svn_backup\project.dump点击回车后,如下图所⽰,已经将project版本库中的12个版本全部备份。

b)增量备份:增量备份主要使⽤svnadmin dump的 --incremental选项来实现,在对版本进⾏管理时,采⽤增量备份的⽅法,只需要对版本库从上次备份后的版本号开始进⾏备份即可,节省了对版本库备份时的时间及存放版本的硬盘资源。

数据库备份方案中的增量备份和差异备份选择

数据库备份方案中的增量备份和差异备份选择

数据库备份方案中的增量备份和差异备份选择在数据库备份方案中,选择合适的备份类型是至关重要的。

其中,增量备份和差异备份是常用的备份策略,本文将对这两种备份方式进行详细的比较和选择建议。

1. 增量备份:增量备份是基于完整备份的基础上,只备份自上次备份以来发生改变的数据部分。

具体实现方式是,每当进行一次完整备份之后,接下来的备份只会记录增量的变动数据。

优点:1) 备份速度快:增量备份只备份变动的数据部分,所以备份时间相对较短。

2) 存储空间占用低:因为只备份增量数据,所以占用的存储空间相对较小。

3) 还原速度快:还原数据时,只需要将完整备份和增量备份依次恢复即可。

缺点:1) 还原过程繁琐:还原时需要依次还原完整备份和所有的增量备份,有时候可能会出现备份文件过多的情况。

2) 对备份软件要求高:选用适当的备份软件对增量备份进行管理和恢复是非常重要的。

适用场景:1) 大型数据库系统:当数据库拥有数十亿行数据,每天只有小部分数据发生改变时,增量备份是非常适合的选择。

2) 需要频繁备份的情况:因为增量备份只备份有变动的数据,所以可以频繁备份而不会占用太多的存储空间。

2. 差异备份:差异备份是基于完整备份的基础上,备份自上次完整备份之后的变动数据,与增量备份的区别在于差异备份备份的是与上次完整备份之间的差异数据,而非上次备份之后的增量数据。

优点:1) 还原速度快:还原时只需要一次完整备份和差异备份即可。

2) 易于管理:相对于增量备份,差异备份文件数量较少,管理起来更简单。

缺点:1) 备份时间相对较长:与增量备份相比,差异备份需要备份的数据规模更大,因为包含了与上次完整备份之间的所有变动数据。

2) 占用存储空间较大:因为备份的是与上次完整备份之间的差异数据,所以占用的存储空间相对较大。

适用场景:1) 数据量较小且需要频繁备份:对于数据量较小的数据库系统,在数据相对频繁发生变动且备份时间允许的情况下,差异备份是一个不错的选择。

SVN自动全备份与增量备份

SVN自动全备份与增量备份

SVN自动全备份与增量备份刚刚上班领导要一个做测试来配置SVN,说实话平时工作只会用,哪会配啊,没办法,谁叫领导安排了呢!SVN装起来简单,可领导发话要自动全备份和增量备份,这哪会啊,可是在网上一搜一大把的,看也看不懂,将就的弄了也是不成功,算了,还是找大牛帮我写个。

这得感谢我们家哥哥!牛掰的人物啊!SVN自动全备份脚本@echo offset ck=Productset yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set hh=%time:~0,2%set mn=%time:~3,2%set ss=%time:~6,2%set filename=%ck%-%yy%%mm%%dd%-%hh%%mn%%ss%svnadmin hotcopy D:\Repositories\Product\%ck% D:\SVN_FULL_BAK\%filename%第一个地址是SVN库的地址,第二个地址是你要备份文件的存放目录,此目录的文件名一定要存在哦!注意:该文件是放在bin目录下的哦!然后在控制面板-》管理工具-》任务计划程序中,将此任务添加进去就ok啦!SVN增量备份脚本echo onset yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set hh=%time:~0,2%set mn=%time:~3,2%set ss=%time:~6,2%set filename=%yy%%mm%%dd%-%hh%%mn%%ss%set svn_repos="D:\Repositories\Product"set backup_dir="E:\SVN_COMMIT_BAK"set backup_file=weekly7_backup_%filename%svnlook youngest %svn_repos%>youngestfor /f "eol= tokens=*" %%i in (youngest) do set "youngest=%%i"::echo last back up revision:%youngest%>>above_back_filepausesvnadmin dump-r %youngest% %svn_repos% >%backup_dir%\%backup_file%-%youngest%--incremental --deltaspause::echo last back up date:%date:~0,10%>>above_back_file2014/6/19第一个地址是需要备份的库的目录,第二个地址是备份到哪个去的目录,该目录一定要存在哦!注意:该文件是放在SVN库的hooks文件夹下。

SVN服务器几种备份策略

SVN服务器几种备份策略

SVN服务器几种备份策略SVN服务器几种备份策略(本文例子基于FreeBSD/Linux实现,windows环境请自己做出相应修改)配置管理的一个重要使命是保证数据的安全性,防止服务器应硬盘损坏、误操作造成数据无法恢复的灾难性后果。

因此制定一个完整的备份策略非常重要。

一般来说,备份策略应规定如下几部分内容:备份频度、备份方式、备份存放地点、备份责任人、灾难恢复检查措施及规定。

备份频度、存放地点等内容可以根据自己的实际情况自行制定;本文重点描述备份方式。

svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy3)svnsync.注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。

笔者曾经用rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份。

优缺点分析:==============第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。

缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。

个人建议在版本数比较小的情况下使用这种备份方式。

第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份;优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn 服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。

缺点是:比较耗费硬盘,需要有较大的硬盘支持(俺的备份机有1TB空间,呵呵)。

第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。

不过,必须svn1.4版本以上才支持这个功能。

优点是:当制作成2个镜像库的时候起到双机实时备份的作用;缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SVN在Windows下实现自动全量增量备份和异地备份1SVN备份介绍1.1SVN备份内容SVN在Windows下的自动备份实现,包括:1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);2)SVN增量备份(每日备份1次,由windows计划来调度执行);1.2SVN备份流程上述2类备份分别进行的流程如下:1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。

异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用、serverU或者简单ftp软件进行搭建。

4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。

1.3SVN还原功能可以进行还原所有版本库2SVN备份BAT设计1.1全备份BAT1)SVN的全备份,AllBackUp.bat:Begin@echo offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\全备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部全量备份版本库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf ( ::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmpecho %time:~0,8% %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo ---------------------------------->> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 用户权限信息备份成功!echo %time:~0,8% 用户权限信息备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 全部版本库备份成功!echo %time:~0,8% 全部版本库备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.logAllBackupByFtpgoto end:Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN的全备份进行FTP上传,AllBackupBy@echo offREM ======设置区Start================================setsetset .1.22setREM 指定从FTP下载下来的文件存放到本机哪个目录set 全备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\全备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLog\BackUp.logREM FTP命令执行文件缓存set \Temp>"%" (echo,open % %echo,%echo,%echo cd "%"echo prompt offecho binecho put %rarToecho put %bakupLogecho bye)set Path=%Path%;%rarExePath%set log\REM ======设置区End ================================echo ===================%date% 执行异地版本库全量备份开始================= >> %logif not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logWinRAR.exe a -ep1 -k -r -s -ibck %rarTo %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarTo >> %logecho %time:~0,8% 备份压缩继续上传FTP开始... >> %log-i -s:"%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:% >> %logdel /q /s /f %rarToecho. >> %loggoto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logecho %time:~0,8% 备份失败! >> %logecho. >> %logecho 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.echo 程序执行结束!1.2增量备份BAT1)SVN数据库的增量备份,IncreBackUp.batif not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisionsrem if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1if not exist %REPOS_LAST_REVERSION_DIRECTORY%mkdir %REPOS_LAST_REVERSION_DIRECTORY%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::设置LastRevisions备份目录set REPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisions if not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部版本库备份.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf (::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (::判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份if exist %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt (::读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for /f %%k in (%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt) do if %%k lss %%j (echo.echo 开始备份版本库%%~ni……::取得该版本库本次备份的起始版本号set version=%%kset /a version=!version!+1::增量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi --revision !version!:head --incremental > %BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmpecho %%~ni: !version!-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmp! )) else (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp echo %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::将本次版本库备份时的最新版本信息写入文件保存echo %%j> %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txtecho %%j> %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt )::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo.echo 用户权限信息备份成功!echo.echo 全部版本库备份成功!IncreBackupByFtpgoto end:Error1echo.echo 提示:echo 上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序; echo 或者,不基于上次备份重新执行备份!echo 重新备份?(Y/N)set /p input=if %input%==Y (mkdir %REPOS_LAST_REVERSION_DIRECTORY%goto Begin) else (goto End):Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN数据的增量备份的FTP上传,IncreBackupBy@echo offREM ======设置区Start================================setsetset .1.22setREM 指定从FTP下载下来的文件存放到本机哪个目录set 增量备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\增量备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLog\BackUp.logREM FTP命令执行文件缓存set \Temp>"%" (echo,open % %echo,%echo,%echo cd "%"echo prompt offecho binecho put %rarToecho put %bakupLogecho bye)set Path=%Path%;%rarExePath%set log\REM ======设置区End ================================echo ===================%date% 执行异地版本库增量备份开始.=================== >> %logif not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logWinRAR.exe a -ep1 -k -r -s -ibck %rarTo %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarTo >> %logecho %time:~0,8% 备份压缩继续上传FTP开始... >> %log-i -s:"%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:% >> %logdel /q /s /f %rarToecho. >> %loggoto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logecho %time:~0,8% 备份失败! >> %logecho. >> %logecho 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.3SVN还原BAT设计SVN的还原LoadBackUp.bat@echo offecho 正在准备还原所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% goto Error::还原所有版本库echo ===================%date% %time:~0,8%:执行版本库执行还原操作=================== >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 还原的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\SvnLoad.log::将所有保存版本库备份的文件夹名写入tmpdir /b %REPOS_BACKUP_ROOT%\*.dmp > folderName.tmp::依次操作tmp文件中包含的文件夹for /f %%h in (folderName.tmp) do (::将所有版本库文件名写入tmpdir /b /a-d %REPOS_BACKUP_ROOT%\%%h\*.dmp >::依次操作tmp文件中包含的备份文件for /f %%i in () do (::处理备份文件名,以取得版本库名和相应的版本号for /f "tokens=1,2* delims=-" %%j in ("%%~ni") do (echo.echo 开始还原版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l……::版本库根目录不存在和版本库名相同名字的文件夹则创建一个if not exist %REPOS_ROOT%\%%j (mkdir %REPOS_ROOT%\%%j)::版本库根目录中该文件夹不是版本库,则创建一个if not exist %REPOS_ROOT%\%%j\conf\svnserve.conf (%SVN_CMD%\svnadmin create %REPOS_ROOT%\%%j)::还原备份%SVN_CMD%\svnadmin load %REPOS_ROOT%\%%j < %REPOS_BACKUP_ROOT%\%%h\%%i echo %%j: %%k-%%l >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l还原成功!)))::删除临时文件deldel folderName.tmpecho.echo 全部版本库还原成功!goto end:Errorecho.echo 版本库备份目录%REPOS_BACKUP_ROOT%不存在,请确认后重新运行程序! goto End:End。

相关文档
最新文档