개발 메모장

[SVN] Windows를 이용한 자동 백업 본문

Git & SVN

[SVN] Windows를 이용한 자동 백업

yyyyMMdd 2024. 3. 15. 10:23
728x90
  • Visual SVN을 설치하고 파일들을 잘 보관하기 위해선 백업은 필수로 설정해야 합니다.

  • Visual SVN에서 Backup Job이라는 기능을 제공하지만 이는 Enterprise 버전에서만 사용 가능하기에 라이센스를 필요로 합니다.

  • 따라서 서버에서 처리하는 방법에 대해 알아보도록 하겠습니다.

  • 아래 내용은 윈도우 기준으로 작성하였습니다.

#. bat 파일 만들기

  • 메모장을 켜고 아래와 같이 작성해 주고 확장자를 .bat로 변경해 줍니다.

  • set "변수키=변수값"
    - 내부적으로 사용한 변수명을 지정하고 값을 입력해 줍니다.
    - 세팅된 리스트를 확인하려면 set만 입력하면 됩니다.

  • echo 
    - 2>nul는 디렉터리가 이미 있는 경우의 오류메시지를 무시하게 합니다.

  • mkdir
    - 폴더를 생성하는 명령어입니다.
    - cmd에서 보여주기 위한 진행상황 알림용으로 생각하시면 됩니다.

  • xcopy
    - 복사하는 명령어입니다. 
    - xcopy /s /e "복사할 폴더 경로" "붙여 넣을 폴더 경로"를 입력하면 됩니다.
    - 추가로 위 명령어 입력 시 폴더인지 파일인지 D / F를 눌러달라는 멘트가 나옵니다.
    - 이를 대비하기 위해 echo d |를 붙여 질문이 나올 시에 대비할 수 있습니다.


  • 아래는 생성된 지 30일이 지난 파일을 삭제하는 명령어입니다.

  • forfiles
    - for문처럼 특정위치 내 파일들을 하나씩 보여줍니다.
    - /p 다음엔 경로를 입력
    - /d 다음엔 +/-일수 입력(-30은 30일이 지난 파일을 의미)
    - /c 다음엔 " " 안에 커맨드 입력
    - @isdir == TRUE는 파일형식이 디렉터리라는 의미입니다.

  • rmdir
    - remove Directory로 디렉터리 삭제를 의미합니다.
    - /s는 지정된 디렉터리 및 파일을 지운다는 의미입니다.
    - /q는 /s로 삭제 시 문제가 없는 경우 다시 묻지 않게 합니다.
    - 더 자세한 내용은 명령어 뒤에 /? 를 붙이면 사용방법에 대해 알려주니 필요하신 기능이 있으시면 찾아보시면 좋을 것 같습니다.

@echo off
setlocal

set "svnmanager_path=C:\Repositories"
set "backup_dir=D:\SVN_Backups"
set "timestamp=%DATE:/=-%_%TIME::=-%"

cd /d "%svnmanager_path%"

echo Backing up repositories...
mkdir "%backup_dir%" 2>nul
echo d | xcopy /s /e "C:\Repositories" "%backup_dir%\repositories_backup_%timestamp%"

echo Backup completed.

echo Deleting old backup files...

forfiles /p "%backup_dir%" /d -30 /c "cmd /c if @isdir==TRUE rmdir /s /q @file"

echo Deletion completed.

endlocal

#. 스케줄러 생성하기

 

  • 작업 스케줄러를 실행시켜 줍니다.

  • 일반탭에선 스케줄러 이름 및 보안옵션을 선택해 주세요. 보안옵션에서 사용자의 로그온 여부에 따라 실행 여부를 선택할 수 있습니다.

  • 트리거 탭은 스케줄러를 실행할 주기, 시간 등을 지정할 수 있습니다.

  • 동작 탭은 생성한 bat파일을 넣어 프로그램 시작을 설정할 수 있게 합니다.

  • 이렇게 완료를 하면 스케줄러가 생성됩니다.

 

 

===========================================================
틀린 내용이 있거나 이견 있으시면 언제든 가감 없이 말씀 부탁드립니다!
===========================================================

728x90