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

번호 제목 sitelink1 글쓴이 날짜 조회 수
243 Windows 11 Pro 환경의 WSL2(Windows Subsystem for Linux 2)에서 X11(그래픽 앱)을 실행   황제낙엽 2026.01.06 2648
242 경로 관련 별칭(alias)   황제낙엽 2025.12.19 2541
241 macOS 에서 finder 로 숨김 디렉토리, 파일을 조회   황제낙엽 2025.09.26 1647
240 특정 폴더 제외하고 가장 최근에 생성된 폴더 이름 가져오는 shell file 만들기   황제낙엽 2025.07.28 2569
239 [Copilot] WSL2 Ubuntu 실행 방식과 차이점   황제낙엽 2025.06.09 2555
238 [Gemini] docker pull 로 다운받은 ubuntu 이미지를 portainer 로 실행하여 접속   황제낙엽 2025.06.02 2562
237 Windows 11 Pro -> WSL2 (Ubuntu) -> Docker -> Portainer   황제낙엽 2025.05.30 2707
236 윈도우 11 설치 USB 만들기 가이드 https://blog.naver.com/cjs0308cjs/223694056158  황제낙엽 2025.01.10 3981
235 [bard] docker로 실행한 container에 터미널로 접속   황제낙엽 2024.02.01 3658
234 [2023. 11. 6.] 데이터베이스, GUI 클라이언트 환경의 Docker Compose 모음 https://blog.pages.kr/2819  황제낙엽 2024.01.29 3810
233 Docker Compose 문법 정리 (YAML)   황제낙엽 2024.01.29 3366
232 Docker Compose 명령어(실행,중지,삭제) https://docs.docker.com/compose/reference/  황제낙엽 2024.01.28 3842
231 Docker Compose 에 대한 이해와 사용법에 대한 포스팅 모음 https://docs.docker.com/compose/gettingstarted/  황제낙엽 2024.01.26 4075
230 Kubernetes 와 Docker 의 관계   황제낙엽 2024.01.26 3022
229 docker 를 windows 에서 실행하는 방법 3가지 정리   황제낙엽 2024.01.23 3737
228 windows + docker 설치에 대한 포스팅 모음   황제낙엽 2024.01.22 3528
227 윈도우 10 실행키 입력 명령어 목록 (Windows + R) https://haenny.tistory.com/217  황제낙엽 2023.07.12 7536
226 윈도우 10 "원격 데스크톱"의 "컴퓨터 목록" 정보 저장 위치 (from Bing)   황제낙엽 2023.07.11 3998
225 compress this drive to save disk space (이 드라이브를 압축하여 디스크 공간 절약)   황제낙엽 2023.05.09 4210
224 명령어 모음   황제낙엽 2023.05.06 3650