sitelink1 http://blog.naver.com/hypermin/70010581907 
sitelink2  
sitelink3  

1 소스 세이프 자동으로 백업하기
뭐든지 자동으로 하면 사람의 손이 편한 법이다. 소스 세이프 백업이라고 예외일 수는 없는 법. 다음과 같은 목표를 가지고 자동 백업을 시도해 보자. 

    1) 하루에 한번 자동으로 백업이 되도록 한다. 
    2) 날짜로 구분되는 백업 파일을 생성한다. (예: 08-20-2000 Project Backup.ssa') 
    3) 왠만하면 기본적으로 설치되는 프로그램만을 이용한다. 

참고로 아래의 내용들은 Windows 2000 이상에서만 동작하는 것이 확인되었다. Windows NT 4.0 이하에서는 제대로 작동되지 않는다. 


2 일괄 파일 생성
1) 다음과 같은 내용의 일괄 파일을 생성한다. 
    ECHO OFF 
    @TITLE Backing up source safe databases 
    FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k 
    SRCSAFE_PATH\win32\ssarc -d- -yACCOUNT,PASSWORD -sSRC_SAFE_INI_PATH,DATA_PATH "BACKUP_DIR\%DATE% FILENAME.ssa" $/PROJECT 
    @ECHO Finished backups 

 

2) 생성한 파일을 필요에 따라 수정한다. 
    - SRCSAFE_PATH 부분을 당신의 소스 세이프 디렉토리로 바꿔야 한다. 
    - ACCOUNT,PASSWORD 부분을 해당하는 계정과 패스워드로 바꿔야 한다. 
    - SRC_SAFE_INI_PATH 부분을 백업하고자 하는 데이터베이스의 srcsafe.ini 파일이 있는 디렉토리로 바꿔준다. 
    - DATA_PATH 부분을 실제 데이터가 존재하는 디렉토리(보통 srcsafe.ini가 있는 디렉토리 안에 있는 data 서브 디렉토리)로 바꿔 준다. 
    - BACKUP_DIR 이라고 되어있는 부분을 백업 파일을 두고자 하는 디렉토리로 바꿔야한다. 
    - FILENAME 부분을 원하는 이름으로 바꿔준다. 
    - PROJECT 부분을 백업하길 원하는 소스 세이프 프로젝트 이름으로 바꿔라. 모든 데이터를 백업하고 싶다면 $/만 쓰면 된다. 

 

3) 이 파일을 어딘가에 저장해라. 'ss_backup.bat'라고 저장했다고 하자. 


3 일괄 파일 설명

 

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

 

FOR 명령어는 NT/2000에 기본적으로 존재하는 명령어로서 파일 목록과 텍스트 목록을 가공할 수 있게 해 준다. '/F' 플래그를 붙여 실행하면 바로 다음에 오는 명령어를 실행한 결과를 가공할 수 있다. 이 예에서는 'date /t' 명령어 출력 결과를 가공하는 것이다. FOR는 '/' 글자를 기준으로 하여, 'date /t' 명령의 출력을 토큰으로 분리하고, 이 중에 1번째 것부터 3번째 것까지를 %%i 변수부터 시작하여, %%k 변수까지에다 저장하는 것이다. 그 다음 분리한 결과를 이용하여 환경 변수인 DATE에다가 날짜값을 집어넣는 것이다. 

 

주의할 것은 'date /t'의 출력이 로케일에 따라 틀리다는 것이다. 포맷을 잘 보고 변수를 세팅하기 바란다. 

 

SRCSAFE_PATH\win32\ssarc -d- -yACCOUNT,PASSWORD -sSRC_SAFE_INI_PATH,DATA_PATH "BACKUP_DIR\%DATE% FILENAME.ssa" $/PROJECT 

 

ssarc.exe는 소스 세이프와 함께 딸려오는 커맨드 라인 유틸리티다. 자세한 옵션은 다음과 같다. 

 

Usage: ssarc [-d -v -s -o -i- -y -x -c] <archive file> <file(s)/project(s)> 
  -d | -d-                           Delete/don't delete archived items 
  -v[D|L]<version>                   Archive up to this version 
  -s<srcsafe.ini path>,<Data_Path>   Specify SourceSafe database location 
  -o                                 Paginate or redirect output 
  -i-                                Do not prompt during run 
  -y<user>,<password>                Specify login information 
  -x | -x-                           Select only deleted files 
  -c | -c-                           Comment for the operation 


4 일정 시간마다 실행하기
작업을 자동화하기 위해서 'AT' 커맨드를 이용할 수 있다. 스케쥴 서비스를 활성화하는 것을 잊지 말자. 스케쥴 서비스가 활성화되어 있는 것을 확인했다면 커맨드 창에서 다음과 같이 입력한다. 
at 05:00:00 /interactive /every:M,T,W,Th,F,S,Su cmd /c e:\ss_backup.bat 
대강 알 수 있을 것이다. 매일 오전 5시에 e:\ss_backup.bat 파일을 실행하는 것이다. 필요한 부분은 알아서 바꾸면 된다. 


5 추가적인 요소들
안전한 백업을 위해서 배치 파일에다가 백업한 파일을 리모트 디렉토리로 카피하는 명령을 집어넣을 수도 있다. 
소스 세이프 데이터베이스 자체의 무결성을 검사하는 명령을 집어넣을 수도 있다.

무결성 검사 시에는 누구도 소스 세이프 데이터베이스에 접속해 있으면 안 된다. 


6 복원 방법
Source Safe Admin 프로그램에 보면 Restore Project 명령어가 있다.