技术开发 频道

VSS的每日自动备份

【IT168 技术文章】

    小弟在项目中兼职担当配置管理员,备份VSS的重任当然也得我来扛着,不然兄弟们加班加点的劳动果实可能因为什么天灾人祸一不小心就挂了。

    以往备份VSS的频率是一月一次,近来受到上面的教导,备份频率较少,需要每日备份。难道小弟我需要每日坚持到加班的最后一刻,然后再全部get最新,再压缩文件,再传到服务器上去吗?现在的项目很大了,备份一次真是费时不少。

    作为一个老程序员肯定不能干这种重复的手工劳动,得想个办法,偷一下懒。网上找了一圈,codeproject.com上找到了一篇讲这个的文章。理解之后,做成了以下的bat文件:

    @ECHO OFF
    @TITLE Backing up source safe databases
   
    SET VSS_Install_Path="D:\Program Files\Microsoft Visual Studio\VSS\win32\"
    SET VSS_DB="\\Server\Vss_DB_Path\Vss_DB_Name"
    SET Bak_File="e:\%DATE%_Backup.ssa"
    SET VSS_Admin_Name="admin"
    SET VSS_Admin_Password="Your Admin Password"

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

    %VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB%  %Bak_File% $/

    @ECHO Finished backups

    文件的解释

    1 在实际项目中使用的话,需要修改文件中五个参数:

    VSS_Install_Path :VSS的安装路径
    VSS_DB :需要备份的VSS DB的路径
    Bak_File :备份文件的输出地址
    VSS_Admin_Name :VSS DB管理员的用户名
    VSS_Admin_Password :VSS DB管理员的密码

    2 “FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k”设置一个获取当前日期的变量,用于每日备份的文件名

    3 “%VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB% %Bak_File% $/”
   
    BAT文件的核心:使用了VSS安装路径下的 ssarc.exe 这个实用的工具来备份指定的VSS DB.

    每日工作的配置

    1 进入备份服务器

    2 开始——程序——附件——系统工具——任务计划——添加任务计划

    3 选择保存的我们做成的VSS备份的bat文件,设置执行频率为“每日”,时间可设置为凌晨1、2点钟,那时大家应该都下班了吧。

    4 OK!大功告成,不用管备份的事情了。不过一定得把备份服务器的硬盘弄大一点,项目大了的话,备份文件还是挺大的,小心撑爆硬盘,过了保质期后,可以手动废掉一些过期的备份文件。

0
相关文章