sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
extra_vars6 |
TFS 백업 데이터를 압축해서 FTP서버에 올려두고 원본은 네트웍 드라이브에 폴더를 생성하여 한시적(10일)으로 보관하는 스크립트를 작성하였다
FTP 접속과 ZIP 압축은 별도의 프리웨어를 이용하였고 나머지 동작은 VBS와 DOS쉘로만 구성된 프로그램이다
프로그램을 살펴보고 싶다면 첨부파일을 다운로드한다 -> TfsCloudBackup.zip
다음은 쉘프로그램의 내용이다
REM Start Batch
GOTO INIT
:INIT
REM 1. Initializing batch. 네트웍 드라이브를 연결하고 각종 환경변수를 설정한다
NET USE X: \\[네트웍 드라이브IP주소]\tfsbackup /user:[계정ID] [계정비번]
SET PATH_BACKUP=D:\TfsDataBackup
SET PATH_LOCAL_BACKUP_REPO=X:\tfs_backup
for /F "tokens=1,2,3 delims=-" %%I IN ('cscript /nologo expireDate.vbs') do SET PATH_DEL_DATE=%%I%%J%%K
for /F "tokens=1,2,3 delims=-" %%I IN ('echo %date%') do SET PATH_DATE=%%I%%J%%K
SET PATH_LOCAL_BACKUP=%PATH_LOCAL_BACKUP_REPO%\%PATH_DATE%
IF NOT EXIST %PATH_LOCAL_BACKUP% MKDIR %PATH_LOCAL_BACKUP%
SET PATH_CURRENT=%CD%
SET PATH_LOG=%PATH_CURRENT%\log
SET PATH_7ZIP=%PATH_CURRENT%\zip
SET PATH_FTP=%PATH_CURRENT%\ftp
SET PATH_7ZIP_EXE=%PATH_7ZIP%\7z.exe
SET PATH_FTP_EXE=%PATH_FTP%\WinSCP.com
SET FTP_CMD=FTP_INFO.txt
SET BACKUP_NAME=TFS_DB_BACKUP.zip
SET FTP_FILE=%PATH_CURRENT%\%FTP_CMD%
SET BACKUP_FILE=%PATH_BACKUP%\%BACKUP_NAME%
ECHO open ftp://[계정ID]:[계정비번]@[FTP서버IP주소]:[포트번호]> "%FTP_FILE%"
ECHO cd TFS_BACKUP>> "%FTP_FILE%"
ECHO binary>> "%FTP_FILE%"
ECHO put %BACKUP_FILE%>> "%FTP_FILE%"
ECHO bye>> "%FTP_FILE%"
GOTO COMPRESS_FILES
:COMPRESS_FILES
REM 2. Compressing Backup Files. 지정한 경로의 파일들을 압축한다
"%PATH_7ZIP_EXE%" a "%BACKUP_FILE%" "%PATH_BACKUP%\*.*"
IF EXIST "%BACKUP_FILE%" GOTO SEND_FILE
GOTO BATCH_FAILED
:SEND_FILE
REM 3. Save compressed file to FTP server. FTP 서버로 압축 파일을 전송한다
"%PATH_FTP_EXE%" /script="%FTP_FILE%"
GOTO BATCH_SUCCESSED
:BATCH_SUCCESSED
REM 4. Batch Processing has been succeeded. 배치 성공을 확인한다
GOTO DEINIT
:BATCH_FAILED
REM 4. Batch Processing has been failed. 배치 실패를 확인한다
GOTO DEINIT
:DEINIT
REM 5. Deinitializing batch. 배치가 완료된후 로컬의 압축 파일을 지운다
DEL "%BACKUP_FILE%"
DEL "%FTP_FILE%"
REM 5-1. Moving Backuped Files. TFS백업 파일을 네트웍 드라이브로 옮긴다
ROBOCOPY "%PATH_BACKUP%" "%PATH_LOCAL_BACKUP%" * /MOV /XF *.xml
COPY "%PATH_BACKUP%\BackupSets.xml" "%PATH_LOCAL_BACKUP%"
COPY "%PATH_BACKUP%\BackupSettings.xml" "%PATH_LOCAL_BACKUP%"
REM 5-2. Deleting Expired Backup File. 네트웍 드라이브에 저장한 백업 파일중 유효기간이 지난 파일은 삭제한다
RMDIR /S /Q "%PATH_LOCAL_BACKUP_REPO%\%PATH_DEL_DATE%"
NET USE X: /d
:BATCH_END
REM 6. End of Batch
2017.11.25
- 배치 프로그램의 작업 순서에 문제가 있어서 수정 작업을 하였다
- 다운로드 : TfsDataBackupShell.7z