svn备份与还原_脚本_(dump命令)

今天备份svn, 能保证好用就行先, 回头再研究

buerguo.bat

@echo off
:: 关闭回显
:: 说明:如有命令不明白,请使用帮助命令:命令/? 。如:for/?
:: 设置标题
title SVN备份脚本
rem 设置变量
:: SVN_HOME svn程序的安装路径,指定到bin目录上一级。(如果路径有空格,请用""。)
set SVN_HOME=D:\Develop\VisualSVNServer
:: SVN库的路径
set SVN_ROOT=D:\Repositories
:: 备份SVN父目录的路径
set SVN_BACKUP_ROOT=D:\svnrootbackup
:: 获取当前系统日期和时间用来创建目录,格式:年月日_时分秒毫秒。如:20131129_16275274
set TIME_DIR=%date:~,4%%date:~5,2%%date:~8,2%_%time:~,2%%time:~3,2%%time:~6,2%%time:~9,2%
:: SVN备份子目录的路径
set BACKUP_DIRECTORY=%SVN_BACKUP_ROOT%\%TIME_DIR%
:: 日志文件路径(将日志和备份文件放在一个目录,删除时一起删除了)
set LOG=%BACKUP_DIRECTORY%\backup.log
:: 指定备份文件删除时间(单位:天)。0 - 32768 范围内的任何数字。
set NUM=365
rem 开始备份SVN
:: 判断SVN程序是否存在
if not exist %SVN_HOME% goto error
goto start
:start
:: 查询日志大小(单位:字节),超过1Mb就新建一个 (日志放入备份目录后,此语句无效。仅备份!)
:: for /r %SVN_BACKUP_ROOT% %%I in (backup.log) do if %%~zI GEQ 1048576 ren %LOG% backup_%TIME%.log
:: 新建目录
mkdir %BACKUP_DIRECTORY%
:: 建立日志
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%建立备份目录:%BACKUP_DIRECTORY% >>%LOG%
:: 备份SVN版本库并输出日志到文件
for /d %%i in (%SVN_ROOT%\*) do (
@echo 备份 %%~ni 库,备份文件名:%%~ni.dmp >>%LOG%
:: 完整备份(增量备份在dump后面添加参数 --incremental)
%SVN_HOME%\bin\svnadmin dump %SVN_ROOT%\%%~ni >%BACKUP_DIRECTORY%\%%~ni.dmp 2>>%LOG%
)
:: 输出备份命令退出码,用来判断是否备份成功。成功的退出码为0.
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%退出码为:%errorlevel%>>%LOG%
:: 自动设置计划任务:每周六 晚上11点执行本脚本。
at 23:00 /next:S %~f0>>%LOG%
:: 删除过期备份
goto delete
:delete
:: 输出要删除的目录到日志文件
@echo [info]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%删除%NUM%天前的备份:>>%LOG%
forfiles /P %SVN_BACKUP_ROOT% /M *_* /D -%NUM% /C "cmd /c echo 删除文件夹:@file">>%LOG%
:: 使用rd命令删除超过%NUM%天的备份目录。如果不存在匹配条件的目录,将提示:错误: 用指定的搜索标准没有找到文件。如果存在匹配的文件,则提示:目录名无效
forfiles /P %SVN_BACKUP_ROOT% /M *_* /D -%NUM% /C "cmd /c rd /s/q @path" 2>>%LOG%
goto end
:error
echo [error]%date:~,10% %time:~,2%:%time:~3,2%:%time:~6,2%程序目录不存在,请检查:%SVN_HOME%>>%LOG%
goto end
:end
:: 输出一行空行分割日志
@echo. >>%LOG%
exit
:: 调试脚本用的命令
:: at 16:06 %~f0
:: PAUSE
:: exit

修改三个路径即可

:: SVN_HOME svn程序的安装路径,指定到bin目录上一级。(如果路径有空格,请用""。)
set SVN_HOME=D:\Develop\VisualSVNServer
:: SVN库的路径
set SVN_ROOT=D:\Repositories
:: 备份SVN父目录的路径
set SVN_BACKUP_ROOT=D:\svnrootbackup=========================================================================创建好该批处理文件放到了repository下(和路径没关系吧), 双击执行在指定目录下生成一个备份文件如下图:

如何还原:1.启动svnServer客户端, 新建一个repository(注意不要创建branches tags 和 trunk文件夹) , 就命名为demp吧

在磁盘中可以找到该名为demp的repository

2.打开命令行窗口, 输入以下命令:

svnadmin load D:\Repositories\demp < D:\svnrootbackup\20180627_12565811\buerguo.dmp

这就完事儿了.

有问题在讨论吧. bat文件没仔细研究. 得空再说.

原文地址:https://www.cnblogs.com/yadongliang/p/9233423.html

时间: 2024-07-31 13:23:38

svn备份与还原_脚本_(dump命令)的相关文章

Linux下用dump实现备份和还原 ux下用dump实现备份和还原

对于系统而言,我们可以有很多种办法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小.当然,对于企业服务器而言,备份的重要性是举足轻重.咱们今天就详细讨论一下LINUX中如何用dump和restore实现备份和还原. 一,dump的原理,优点及限制 dump和restore默认已经安装在RHEL5中,如果你使用的Linux中没有,可以自己去google中搜一下并下载安装. 使用dump命令时,它会建立一份自上次备份操作以来进行修改过的文件列表

SVN备份,一个强大脚本

公司有台SVN服务器,平时不经常备份.领导最近要求说要定期备份,于是整理了一个脚本,这个脚本是一个网友写的吧,感觉不错,然后就翻译了一次.也收藏下,如果看着排版就把附件下载下来用notepad++看吧,在此也谢谢这个脚本的原创作者,感谢分享 @echo off ##关闭显示处理过程. rem -----设置环境变量-------##rem在cmd中是注释的意思,和::差不多 rem -----设置SVN目录--------  set svnpath=C:\Repositories\##set设置

备份与还原mysql 数据库的常用命令。

一.备份数据: Mysqldump常用命令: mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql 常见选项: -u: 用户名 -p: 密码 -P: 端口号,不写默认3306 --all-databases, -A:备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名.使用该选项,mysqldum把每个名字都当作为数据库名. -d: 只导出数据库的表

备份与还原mysql 数据库的常用命令

--备份数据:-- mysqldump常用命令: mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql 常见选项: -u: 用户名 -p: 密码 -P: 端口号,不写默认3306 --all-databases, -A:备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名. 使用该选项,mysqldum把每个名字都当作为数据库名. -d: 只导出数据

Linux下用dump实现备份和还原

对于系统而言,我们可以有很多种办法去备份(还原)系统或文件,之所以要去做备份,就是为了在系统或文件遭到损害时,能及时恢复,把损失减小到最小.当然,对于企业服务器而言,备份的重要性是举足轻重.咱们今天就详细讨论一下LINUX中如何用dump和restore实现备份和还原. 一,dump的原理,优点及限制 dump和restore默认已经安装在RHEL5中,如果你使用的Linux中没有,可以自己去google中搜一下并下载安装. 使用dump命令时,它会建立一份自上次备份操作以来进行修改过的文件列表

Mysql数据库备份和还原常用的命令

Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令. 一.备份命令 1.备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename>backupfile.sql 2.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有

Oracle RMAN备份与还原

RMAN在数据库服务器的帮助下实现数据库文件.控制文件.数据库文件与控制文件的映像副本.归档日志文件.数据库服务器参数文件的备份. RMAN的特点: (1) 支持增量备份:传统的exp与expdp备份工具,只能实现一个完整备份而不能增量备份,RMAN采用备份级别实现增量备份,在一个完整的备份基础上采用增量备份可以大大减少备份的数量: (2) 自动管理备份文件:RMAN备份的数据是RMAN自动管理的,包括文件名字,备份文件存储目录等: (3) 自动化备份与恢复:在备份与恢复操作时,使用简单的指令就

svn备份脚本

svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令.rsync命令. 笔者曾经用 rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份. 优缺点分析============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以

SVN手动备份、还原

一.手动备份 说明:若版本较小,可采用svnadmin dump的方式进行全量.增量备份,操作简便.灵活 1)先进入到对应的SVN服务端bin包下cd C:\Program Files (x86)\VisualSVN Server\bin 2)输入命令 svnadmin dump 版本库路径及名称 –revision 上次导出的版本号:到本次要导出到的版本号 –incremental > 导出路径及命名 命令示例:svnadmin dump D:\Repositories\android -r