在win11操作系统中,使用定时任务+脚本的方式实现对SVN文件的定时备份
SVN备份脚本
1 创建脚本simpleBackup.bat
该脚本主要用于实现备份过程的信息展示
@echo 正在备份版本库%1......
@md %BACKUP_DIRECTORY%\%2
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本库%1成功备份到了%2!
2. 创建脚本 backup.bat
主要用来实现备份操作
cho off
::设置SVN的安装路径
set SVN_HOME="C:\Program Files\VisualSVN Server"
::设置SVN仓库的路径
set SVN_ROOT=F:\CodeRepositories
::设置备份仓库的路径
set BACKUP_SVN_ROOT=I:\SvnBak
::获取日期格式:年月日_时分秒毫秒,以此来命名备份文件
set TIME_DIR=%date:~,4%%date:~5,2%%date:~8,2%_%time:~,2%%time:~3,2%%time:~6,2%%time:~9,2%
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%TIME_DIR%
if exist %BACKUP_DIRECTORY% goto checkBack
echo %date:~0,10% %time:~0,-3% : 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.logmd %BACKUP_DIRECTORY%
rem 验证目录是否为版本库,如果是则取出名称备份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" call %SVN_ROOT%\simpleBackup.bat "%%~fI" %%~nI
rem 以下是压缩文件使用
rem echo start zip donot stop
rem %SVN_ROOT%\7z.exe a -tzip %BACKUP_SVN_ROOT%\%date:~0,10%.zip %BACKUP_DIRECTORY%\* -r >nul
rem echo zip finished
rem 清除临时创建备份目录
rem cd %BACKUP_SVN_ROOT%
rem rd/s/q %BACKUP_DIRECTORY%
rem del %date:~0,10%.zip% /s/q
goto end
:checkBack
echo backupfile %BACKUP_DIRECTORY%already exist,must clean。
goto end
:end
::pause
3 双击backup.bat文件进行测试,看是否能够执行成功
正常情况下,所设置的备份文件夹中(本例中为BACKUP_SVN_ROOT=I:\SvnBak)会出现以日期命名的文件夹。脚本设置成功。
设置定时任务
具体设置方式可参考https://blog.csdn.net/weixin_39688581/article/details/140987490?spm=1001.2014.3001.5502文中的第二节的2~9小节。
区别是打开“任务计划程序”窗口的位置不同,win11可按下键盘上的win键,然后搜索“任务计划程序”。
备份频率可设置为每月备份一次。