小弟在項目中兼職擔當配置管理者,備份VSS的重任當然也得我來扛着,不然兄弟們加班加點的勞動果實可能因為什麼天災人禍一不小心就挂了。
以往備份VSS的頻率是一月一次,近來受到上面的教導,備份頻率較少,需要每日備份。難道小弟我需要每日堅持到加班的最後一刻,然後再全部get最新,再壓縮檔案,再傳到伺服器上去嗎?現在的項目很大了,備份一次真是費時不少。
作為一個老程式員肯定不能幹這種重複的手工勞動,得想個辦法,偷一下懶。網上找了一圈,codeproject.com上找到了一篇講這個的文章。了解之後,做成了以下的bat檔案:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
@ECHO OFF
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
@TITLE Backing up source safe databases
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
SET VSS_Install_Path="D:\Program Files\Microsoft Visual Studio\VSS\win32\"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
SET VSS_DB="\\Server\Vss_DB_Path\Vss_DB_Name"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
SET Bak_File="e:\%DATE%_Backup.ssa"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
SET VSS_Admin_Name="admin"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
SET VSS_Admin_Password="Your Admin Password"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
%VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB% %Bak_File% $/
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuAjNhVTMlhzMzImMwQ2NjJmM1QWMkdTNlNTZllzMzYTYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.gif)
@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!大功告成,不用管備份的事情了。不過一定得把備份伺服器的硬碟弄大一點,項目大了的話,備份檔案還是挺大的,小心撐爆硬碟,過了保存期限後,可以手動廢掉一些過期的備份檔案。