SVN备份批处理文件

SVN备份批处理文件,亲测可用

另外,备份文件时获取文件名%%~ni 可改为%%~nxi,以避免文件名中有“.”号时,读取不完成,将.后面的当作后缀名

需要使用hotcopy 时,可以将关键代码进行相关的修改

----------------

@echo off
:: 关闭回显

:: 说明:如有命令不明白,请使用帮助命令:命令/? 。如:for/?

:: 设置标题
title SVN备份脚本 by zjl

rem 设置变量

:: SVN_HOME svn程序的安装路径,指定到bin目录上一级。(如果路径有空格,请用""。)
set SVN_HOME="D:\Program Files\VisualSVN Server"
:: SVN库的路径
set SVN_ROOT=D:\Repositories
:: 备份SVN父目录的路径
set SVN_BACKUP_ROOT=D:\svn_bak
:: 获取当前系统日期和时间用来创建目录,格式:年月日_时分秒毫秒。如: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=30

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点执行本脚本。修改请参考:http://www.doc88.com/p-052298888776.html
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

时间: 2024-10-20 11:37:19

SVN备份批处理文件的相关文章

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:\Repos

SVN备份,一个强大脚本

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

svn备份脚本

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

SVN备份方案

SVN 备份 参考文档: http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-repository-backup.html

svn备份脚 本

一直用这套脚本备份,脚本主体虽不是原创,但是从网上得到后因为不能运行也进行了些修改,前两天看到有人问关于SVN备份的问题,今天又把脚本整理了一下,解决了不能循环备份多个配置库的问题.希望对大家有所帮助.在此也谢谢提供脚本主体的高人.我的备份策略是一个月一次全备份,一周一次增量备份,并且每天也进行增量备份,在Window任务里设置定时进行,设置好后就不用管了,再加一层保险就是定期把备份文件移到另外一台机器存储.(一)全备份,包含两个文件hotcopy.bat和最终执行文件fullbackup.ba

svn备份一般采用三种方式

http://www.cnblogs.com/itech/archive/2011/10/11/2206988.html 备份策略 ============== svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令.rsync命令. 笔者曾经用 rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用

svn备份遇到的问题

svn备份挺简单的,在网上看了一下,就一个svnadmin dump就搞定.在需要还原的地方,使用svnadmin load命令就好.然而,一切并没有想象中这么简单.备份倒是dump就好了,但是在另外一个机器上load的时候,出问题了,checksum不对.分析了很久,尝试了很多方法,都不行,以下是使用的方法:1.使用相同版本的svn,并没有用2.发现局域网传输工具使用udp传输,可能导致包出错,于是用移动硬盘重新拷贝了,load还是不行3.tortoisesvn有bug,但是这么普及的一个软件

SVN备份及恢复

一,SVN备份 svnadmin dump /data/svn/blzfmima/ > /tmp/full.svn.bak 其中/data/svn/blzfmima/为svn文件夹,导出成一个备份文件 二,SVN恢复 创建恢复文件夹 svnadmin create /tmp/TestProject 导入备份文件 svnadmin load /tmp/TestProject/ < /tmp/full.svn.bak 原文地址:https://www.cnblogs.com/minseo/p/86

Eclipse搭建Maven项目并上传SVN备份

近段时间在学着Java,想着用Java做BS的项目.但是项目一遇到问题又要重做,故想起了用SVN做备份. 我的电脑是windows的64位系统: 一.建项目的总体思路是: 前期: a.安装JDK,配置JAVA环境变量(Eclipse基于JAVA环境,所以必须安装JDK) 从Oracle官网下载适合系统的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk 安装并配置J