|
|
| 每天自动备份 SourceSafe |
| 作者 hifly 查看 6006 发表时间 2006/12/28 15:58 【论坛浏览】 |
2006年11月15日 星期三 16:14 在Microsoft Visual SourceSafe中提到管理员应该每天或者至少每周备份一次SourceSafe中的内容。这里,我们利用现有的工具实现每天自动备份SourceSafe中的内容。 adnbottub
adnbottub
1. 用到的工具 adnbottub
a.ssarc.exe. ssarc.exe是随着SourceSafe提供的一个备份工具,位置在SourceSafe安装路径下的win32目录下。 adnbottub
b. schtasks. schtasks允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。替代 AT.exe。 adnbottub
2. 自动备份SourceSafe的步骤: adnbottub
a.创建一个批处理命令文件backup.bat,将其存放在某个位置,如 c:\backup\bin下。 adnbottub
b. 在这个批处理命令文件中写备份SouceSafe的命令。如: adnbottub
@echo off adnbottub
@title Backing up SourceSafe databases adnbottub
set SsPath=C:\Program Files\Microsoft Visual Studio\VSS\win32\ adnbottub
set BakPath=C:\backup\content\ adnbottub
"%SsPath%ssarc.exe" -d- -s"Path to a SourceSafe Database" -i- -yadmin,password -o@"%BakPath%Backup-output(%DATE%).txt" "%BakPath%Backup-Database(%DATE%).ssa" $/ adnbottub
echo Finished backups adnbottub
@echo on adnbottub
说明: adnbottub
1) SsPath 指定了SourceSafe安装目录下的 win32 目录的路径。 adnbottub
2) BakPath指定了备份文件存放的路径 adnbottub
3) 请将“Path to a SourceSafe Database”替换成SourceSafe数据库的SrcSafe.ini的路径。 adnbottub
4) 请将“password”替换成管理员的密码。 adnbottub
5) 每次备份完成之后,在C:\backup\content路径下会有两个文件生成: adnbottub
a. Backup-output(2004-11-01).txt:SourceSafe在备份过程中的所有输出内容将会写入此文件。 adnbottub
b. Backup-Database(2004-11-01).ssa:SourceSafe生成的备份文件。 adnbottub
Note: “2004-11-01”是此备份操作执行时的当前日期。 adnbottub
6) “$/”指定备份整个数据库。 adnbottub
c.利用schtasks命令行工具添加计划任务。如下: adnbottub
schtasks /create /RU system /SC DAILY /ST 12:00 /TN "SourceSafe Backup"adnbottub
/TR "cmd /c C:\backup\bin\backup.bat" adnbottub
说明: adnbottub
1) /RU system 指定在“NT AUTHORITY\SYSTEM”帐户下运行此备份命令。 adnbottub
2) /SC DAILY 指定此命令每天运行一次。可选值包括MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE。 adnbottub
3) /ST 12:00 指定此备份命令在12:00开始执行。 adnbottub
4) /TN "SourceSafe Backup" 指定此计划任务的名称是 SourceSafe Backup adnbottub
5) /TR "cmd /c C:\backup\bin\backup.bat"指定此计划任务运行的命令。 adnbottub
d. 现在已经完成了创建每天自动备份的任务。在命令行下键入“schtasks”,就能在“任务名”一列找到“SourceSafe Backup”了! adnbottub
3. 参考 adnbottub
a.Microsoft Visual SourceSafe Reference Guide(SSUSEXP.CHM)。此文件在SourceSafe的安装路径下。或者到MSDN网站上查看:adnbottub
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/guides/html/vsoriReferenceGuide.asp adnbottub
b. Microsoft Visual SourceSafe Best Practices.adnbottub
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp adnbottub
c.HOW TO: Use Schtasks.exe to Schedule Tasks in Windows Server 2003adnbottub
http://support.microsoft.com/default.aspx?scid=kb;en-us;814596 adnbottub
adnbottub
SSARC [-d] [-v] [-s] [-c] [-o] [-i-] [-y] [-x] adnbottub
adnbottub
它的选项包括: adnbottub
-d Deletes the archived items from the database. adnbottub
-d- controls whether VSS actually deletes anything from the database. adnbottub
-v Specifies a version number to archive adnbottub
-o Redirects output adnbottub
-x Archive only deleted items in the files and projects specified in the files/projects to Archive parameter. (Deleted items are still stored in the VSS database unless the Destroy Permanently option was selected when performing the Delete operation.) adnbottub
adnbottub
方案2:adnbottub
我用at、robocopy、winrar来实现每天的备份 adnbottub
用robocopy将整个VSS的ROOT目录复制到一个新目录中,因为robocopy只复制更新过的文件,所以速度极快 adnbottub
另外用winrar将整个目录压缩成一个rar文件,在脚本中根据星期几生成文件名,这样七天一个循环 adnbottub
用at定时在每天00:00执行 adnbottub
已经运行了快两年了,一个rar文件都已经3G多了,运行得也不错 adnbottub
adnbottub
@ECHO OFF adnbottub
@TITLE Backing up source safe (VSSDATA) databases adnbottub
adnbottub
rem ==========删除临时目录中的内容===== adnbottub
del /F /Q e:\vssdata\temp\*.* adnbottub
adnbottub
robocopy e:\vssdata h:\vssdata_bak /MIR adnbottub
adnbottub
rem ============取出当天是星期几======== adnbottub
FOR /F "tokens=2-2" %%i IN ('date /t') DO SET DAY=%%i adnbottub
adnbottub
"c:\Program Files\WinRAR\rar" a -r h:\backups\vssdata_bak_%DAY%.rar e:\vssdata\*.* adnbottub
adnbottub
@ECHO Finished backups adnbottub
adnbottub
adnbottub
adnbottub
adnbottub
| http://hi.baidu.com/mayig/blog/item/9e15bbde96308158ccbf1aaa.htmladnbottub
adnbottub
[ 本帖最后由 hifly 于 2006-12-28 16:00 编辑 ] |
| 序号 |
评论者 |
共有评论 28 【论坛浏览】 【发表评论】 |
评论时间 |
|
| 1 |
aben_lau |
好东东 收藏了。我用的是任务计划来实现的也比较方便。 |
2007/1/11 12:21 |
|
| 2 |
hifly |
只要达到目的就好。
顺便建议一下,把你的方法也贡献出来。 |
2007/1/11 12:36 |
|
| 3 |
zixiu2008 |
一定要先把数据库锁住吧 |
2007/1/16 10:43 |
|
| 4 |
hifly |
这应该不是必需的。
不过建议锁一下也好。 |
2007/1/16 12:44 |
|
| 5 |
missu_1 |
楼主这个方法看上去好复杂啊...
不会操作...
不知用WIN自带的备份还原可否..是否安全?
还有VSS自带的ARCHIVE可否呢? |
2007/1/24 14:53 |
|
| 6 |
hifly |
转贴就是用的vss自带的备份。写了一个简单的脚本实现自动化而已。
如果库不大,可以复制 整个库 来备份。 |
2007/1/24 15:17 |
|
| 7 |
missu_1 |
| 引用: | 原帖由 hifly 于 2007-1-24 15:17 发表
转贴就是用的vss自带的备份。写了一个简单的脚本实现自动化而已。
如果库不大,可以复制 整个库 来备份。 |
|
哦~~明白了
是不是说vss自带的备份不是自动的。。。转贴是实现了他的自动化? |
2007/1/24 15:30 |
|
| 8 |
hifly |
| 引用: | 原帖由 missu_1 于 2007-1-24 15:30 发表
哦~~明白了
是不是说vss自带的备份不是自动的。。。转贴是实现了他的自动化? |
|
这里说的自动化,是 定时执行,不需要人工干预。 |
2007/1/25 08:46 |
|
| 9 |
Johnny_ysx |
我用的第一种方法很好用, 比以前省事多了, 谢谢楼主啦!: 4:: |
2007/6/2 10:34 |
|
| 10 |
bin800 |
楼主,好东西,和你上次那个3种备份vss,又加了一种。 |
2007/6/6 21:08 |
共有评论数 28 每页显示 10
|
|