小弟在項目中兼職擔當配置管理員,備份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!大功告成,不用管備份的事情了。不過一定得把備份服務器的硬盤弄大一點,項目大了的話,備份文件還是挺大的,小心撐爆硬盤,過了保質期後,可以手動廢掉一些過期的備份文件。