in

搜趣堡 - 中心街区

沈阳人的网上综合社区

影子家园

十一月 2006 - Posts

  • 每天自动备份 SourceSafe

    新项目已经起动了,以后vss上的东东至少每周备份一次,看到一些自动备份的方法,应该很有效。

    Microsoft Visual SourceSafe中提到管理员应该每天或者至少每周备份一次SourceSafe中的内容。下面是利用现有的工具实现每天自动备份SourceSafe中的内容。

    1.       用到的工具 
    a. ssarc.exe. ssarc.exe是随着SourceSafe提供的一个备份工具,位置在SourceSafe安装路径下的win32目录下。
    b.  schtasks. schtasks允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。替代 AT.exe

    2.       自动备份SourceSafe的步骤:
    a. 创建一个批处理命令文件backup.bat,将其存放在某个位置,如 c:\backup\bin下。
    b.   在这个批处理命令文件中写备份SouceSafe的命令。如:

    @echo off
    @title Backing up SourceSafe databases
    set SsPath=C:\Program Files\Microsoft Visual Studio\VSS\win32\
    set BakPath=C:\backup\content\
    "%SsPath%ssarc.exe" -d- -s"Path to a SourceSafe Database" -i- -yadmin,password -o@"%BakPath%Backup-output(%DATE%).txt" "%BakPath%Backup-Database(%DATE%).ssa" $/
    echo Finished backups
    @echo on

    说明: 
        1)      SsPath 指定了SourceSafe安装目录下的 win32 目录的路径。 
        2)      BakPath指定了备份文件存放的路径 
        3)      请将Path to a SourceSafe Database替换成SourceSafe数据库的SrcSafe.ini的路径。 
        4)      请将password替换成管理员的密码。 
        5)      每次备份完成之后,在C:\backup\content路径下会有两个文件生成: 
            a.      Backup-output(2004-11-01).txtSourceSafe在备份过程中的所有输出内容将会写入此文件。 
            b.      Backup-Database(2004-11-01).ssaSourceSafe生成的备份文件。 
            Note: 2004-11-01是此备份操作执行时的当前日期。 
        6)      $/”指定备份整个数据库。
    c. 利用schtasks命令行工具添加计划任务。如下:

    schtasks /create /RU system /SC DAILY /ST 12:00 /TN "SourceSafe Backup"
    /TR "cmd /c C:\backup\bin\backup.bat"

    说明: 
        1)      /RU system    指定在“NT AUTHORITY\SYSTEM”帐户下运行此备份命令。 
        2)      /SC DAILY     指定此命令每天运行一次。可选值包括MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE 
        3)      /ST 12:00     指定此备份命令在12:00开始执行。 
        4)      /TN "SourceSafe Backup"        指定此计划任务的名称是 SourceSafe Backup 
        5)      /TR "cmd /c C:\backup\bin\backup.bat" 指定此计划任务运行的命令。
    d.         现在已经完成了创建每天自动备份的任务。在命令行下键入“schtasks”,就能在“任务名”一列找到“SourceSafe Backup”了!

    3.       参考

    a. Microsoft Visual SourceSafe Reference Guide(SSUSEXP.CHM) 此文件在SourceSafe的安装路径下。或者到MSDN网站上查看:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/guides/html/vsoriReferenceGuide.asp

    b.         Microsoft Visual SourceSafe Best Practices.
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvss/html/vssbest.asp

    c. HOW TO: Use Schtasks.exe to Schedule Tasks in Windows Server 2003
    http://support.microsoft.com/default.aspx?scid=kb;en-us;814596

     

    SSARC [-d] [-v] [-s] [-c] [-o] [-i-] [-y] [-x] <archive file to create> <files/projects to archive>

    它的选项包括:
    -d Deletes the archived items from the database.
    -d- controls whether VSS actually deletes anything from the database.
    -v Specifies a version number to archive
    -o Redirects output
    -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.)

     

    方案2:

    我用at、robocopy、winrar来实现每天的备份
    用robocopy将整个VSS的ROOT目录复制到一个新目录中,因为robocopy只复制更新过的文件,所以速度极快
    另外用winrar将整个目录压缩成一个rar文件,在脚本中根据星期几生成文件名,这样七天一个循环
    用at定时在每天00:00执行
    已经运行了快两年了,一个rar文件都已经3G多了,运行得也不错

    @ECHO OFF
    @TITLE Backing up source safe (VSSDATA) databases

    rem ==========删除临时目录中的内容=====
    del /F /Q e:\vssdata\temp\*.*

    robocopy e:\vssdata h:\vssdata_bak /MIR

    rem ============取出当天是星期几========
    FOR /F "tokens=2-2" %%i IN ('date /t') DO SET DAY=%%i

    "c:\Program Files\WinRAR\rar" a -r h:\backups\vssdata_bak_%DAY%.rar e:\vssdata\*.*

    @ECHO Finished backups

  • 年底可惨了……

    每年公司都要出些新花樣

    今年也是如此

    因爲國家考級很多人都沒有報上

    我也是那些不幸人中的一員

    所以公司就打算内部評定一下了

    前段時間出差 沒有時間和空間學習

    如今已經積攢下來一堆東東要看

    考期越來越近了

    急呀~

    只能臨陣磨槍了

    會亮吧~

     

    每天做得更多的事情是祈禱

    這兩天請的年休假

    應用的也不是很充分

    做的題錯太多

    傷自尊

     

    明天又要上班了

    假期爲什麽總是很快就結束

    也好,抓緊時間請教一下吳老師

    雖,被罵是避免不了

    爲了讓年底自己不會太難過

    一切皆可忍之