18 12
发新话题
打印

[原创] VSS的自动备份( 此文章被查看:999次,被回复:17篇!! )

本主题由 yunshan 于 2008-4-21 17:53 移动

VSS的自动备份

VSS的自动备份
以前在论坛上看到过VSS的自动备份方法,备份的功能有点问题,现将论坛中的方法稍作了一点修改,备份文件可以根据日期来命名,请大家试用一下!如下:

1。编写一个dat文件,内容如下(可根据情况修改路径):
@echo off
@title Backing up SourceSafe databases
rem VSS_Install_Path :VSS的安装路径
set VSS_Install_Path="C:\Program Files\Microsoft Visual SourceSafe\"

rem VSS_DB :需要备份的VSS DB的路径
set VSS_DB="D:\VSS1"



rem VSS_Admin_Password :VSS DB管理员的密码
set VSS_Admin_Name="admin"

rem VSS_Install_Path :VSS的安装路径
set VSS_Admin_Password="123"

FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k

rem Bak_File :备份文件的输出地址
set Bak_File="D:\backup_%DATE%.ssa"

rem 执行备份
%VSS_Install_Path%"ssarc.exe" -d- -o -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB%  %Bak_File% $/

@echo Finished backups


2.在开始->附件->系统工具->任务计划中,添加一个计划任务,设定计划任务每天自动备份的时间。



© 本文为 xhy0002SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

嗯,脚本不错。
基本上VSS的自动备份脚本差不多如此编写,学习了。
还有一个问题就是,
如果我想远程备份,
就是备份到局域网内的其它的机器上的共享文件夹内,
不知道此脚本是否可行?
如果能远程备份就好多了,
安全备份为了确保安全性一般都是备份到另外的专门用做备份的备份服务器上的吧。



© 本文为 CMStrugglingSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

使用了楼主提供的方法,非常方便,有点要求,能不能精确到时间啊?
原因有二:
1.如果在同一天执行两次备份,数据库不更新,只更新txt文档;
2.如果有重要文档添加后,想即时备份,但是用这个方法实现不了,原因如第1条。



© 本文为 crazyrabbitSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 crazyrabbit 于 2008-4-21 19:53 发表
使用了楼主提供的方法,非常方便,有点要求,能不能精确到时间啊?
原因有二:
1.如果在同一天执行两次备份,数据库不更新,只更新txt文档;
2.如果有重要文档添加后,想即时备份,但是用这个方法实现不了,原因如 ...
能精确到时间最好了。
用这个脚本自动进行备份,当同一天第二次进行备份的时候,
它会提示是否Overwrite?(Y/N).

附件

Overwrite.jpg (33.48 KB)

2008-4-21 20:08

Overwirte?(Y/N)

Overwrite.jpg


© 本文为 CMStruggling 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 crazyrabbit 于 2008-4-21 19:53 发表
使用了楼主提供的方法,非常方便,有点要求,能不能精确到时间啊?
原因有二:
1.如果在同一天执行两次备份,数据库不更新,只更新txt文档;
2.如果有重要文档添加后,想即时备份,但是用这个方法实现不了,原因如 ...
鉴于crazyrabbit 的提议,现在我把备份脚本稍微修改了一下,将备份后的文件名称精确到了时分,即现在执行备份脚本后的文件名称可以精确到年月日时分(秒由于取不到,所以只精确到了分),对于备份来说精确到分应该足够了吧。

修改后的脚本为(红色部分为修改过的):
@echo off
@title Backing up SourceSafe databases
rem VSS_Install_Path :VSS的安装路径
set VSS_Install_Path="C:\Program Files\Microsoft Visual SourceSafe\"
rem VSS_DB :需要备份的VSS DB的路径
set VSS_DB="D:\VSS1"

rem VSS_Admin_Password :VSS DB管理员的密码
set VSS_Admin_Name="admin"

rem VSS_Install_Path :VSS DB管理员的密码
set VSS_Admin_Password="123"

FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i%%j%%k
FOR /F "tokens=1-2 delims=: " %%i IN ('time /t') DO SET TIME=%%i%%j


rem Bak_File :备份文件的输出地址
set Bak_File="D:\backup_%DATE%%TIME%.ssa"

rem 执行备份
%VSS_Install_Path%"ssarc.exe" -d- -o -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB%  %Bak_File% $/
@echo Finished backups

© 本文为 xhy0002 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 CMStruggling 于 2008-4-21 19:28 发表
嗯,脚本不错。
基本上VSS的自动备份脚本差不多如此编写,学习了。
还有一个问题就是,
如果我想远程备份,
就是备份到局域网内的其它的机器上的共享文件夹内,
不知道此脚本是否可行?
如果能远程备份就好多了 ...
远程备份也能实现的,你只要把备份文件的存放地址中加上远程服务器的IP就可以实现,如:

rem Bak_File :备份文件的输出地址
set Bak_File=
[url=file://\\172.**.**.**\share\backup_%DATE%%TIME%.ssa]\\172.**.**.**\share\backup_%DATE%%TIME%.ssa[/url]

不过因为是网络上的地方,所以每次执行时会提示是否要备份,这点不太好,不过也应该能解决的,后面研究好了再告诉你。

© 本文为 xhy0002 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

回复 6# 的帖子

楼主真是个细心人啊,
嘿嘿!
嗯,
需求越多,
同时也是帮助不断完善脚本的过程,
大家都得益,何乐而不为。

© 本文为 CMStruggling 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
醉酒当歌,人生几何?
CMStruggling...

TOP

谢谢楼主,这就是一个流程啊。
需求(跟贴)--》需求分析(楼主)--》软件开发--》内部测试—》外部测试—》产品发布

© 本文为 crazyrabbit 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

@echo off
@title Backing up SourceSafe databases

rem VSS_Install_Path :VSS的安装路径
set VSS_Install_Path="C:\Program Files\Microsoft Visual SourceSafe\"

rem VSS_DB :需要备份的VSS DB的路径
set VSS_DB="D:\VSS1"

rem VSS_Admin_Password :VSS DB管理员的密码
(此处是否应为:rem VSS_Admin_Name :VSS DB管理员的登录名?)
set VSS_Admin_Name="admin"

rem VSS_Install_Path :VSS DB管理员的密码
(此处是否应为:rem VSS_Admin_Password :VSS DB管理员的密码?)
set VSS_Admin_Password="123"

FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i%%j%%k
FOR /F "tokens=1-2 delims=: " %%i IN ('time /t') DO SET TIME=%%i%%j

rem Bak_File :备份文件的输出地址
set Bak_File="D:\backup_%DATE%%TIME%.ssa"

rem 执行备份
%VSS_Install_Path%"ssarc.exe" -d- -o -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB%  %Bak_File% $/
@echo Finished backups

楼主,括号内是的内容是应该修正?

另外,我在运行程序时发现一个问题,如图所示,出现了提示,需要用户确认是退出还是继续,不知道是哪里出了问题。

而且原来用计划任务执行的时候会生成一个txt说明文件,改完后txt文件也不见了。

[ 本帖最后由 crazyrabbit 于 2008-4-23 16:08 编辑 ]

附件

VSS bak1.jpg (48.67 KB)

2008-4-23 16:04

VSS bak1.jpg

VSS bak2.jpg (80.96 KB)

2008-4-23 16:04

VSS bak2.jpg


© 本文为 crazyrabbit 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

引用:
原帖由 crazyrabbit 于 2008-4-23 15:27 发表
@echo off
@title Backing up SourceSafe databases

rem VSS_Install_Path :VSS的安装路径
set VSS_Install_Path="C:\Program Files\Microsoft Visual SourceSafe\"

rem VSS_DB :需要备份的VSS DB的路径 ...
非常谢谢crazyrabbit的修正(因为修正的地方是注释,所以不影响文件的执行结果)
我这边的执行后的文件为如下图所示:不知道crazyrabbit是如何操作的,能否详细说明一下?

附件

备份结果.JPG (41.62 KB)

2008-4-29 17:03

备份结果.JPG


© 本文为 xhy0002 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

 18 12
发新话题