지난달에는 Windows 7 컴퓨터 시스템 전체의 백업이나 이미지를 생성하는 데 활용할 수 있는 다양한 도구를 소개한 글을 다룬 바 있습니다. 시스템 전체 백업도 중요하지만, 정말 중요한 디렉터리나 파일은 더 자주 백업하고 싶으실 겁니다. 특히 IT 분야에서는 클라이언트가 특정 디렉터리에 데이터를 수집하고, 해당 데이터가 매일 또는 매시간 정기적으로 백업되기를 원하는 경우가 흔합니다.
MakeUseOf에서는 하드 드라이브 복제 방법, 파일 동기화 도구, PC와 USB 드라이브 간 파일 동기화 등 다양한 데이터 백업 솔루션을 이미 소개했습니다. 이런 솔루션들은 모두 훌륭하지만, 무료 서드파티 소프트웨어 사용을 꺼리는 환경이나 마이크로소프트 제품만 고집하는 기업이라면 마땅한 해결책을 찾기 어려울 수 있습니다.
이번 글에서는 마이크로소프트의 무료 도구인 SyncToy와 간단한 예약 VB 스크립트를 조합해 데이터 백업 과정 전체를 자동화하는 방법을 소개합니다.
자동 파일 백업을 위한 SyncToy 설정
마이크로소프트 SyncToy는 폴더를 "쌍(pair)"으로 묶어 에코 복제 또는 완전 동기화를 수행할 수 있는 무료 도구입니다. 두 방식의 차이는 아래에서 설명하겠습니다. 우선 디렉터리와 파일 백업을 자동화하기 전에, 복사할 대상 폴더와 아카이브 사본이 저장될 위치를 모두 지정해야 합니다.
SyncToy를 처음 실행하면 "Create New Folder Pair(새 폴더 쌍 만들기)"를 클릭한 후 왼쪽(원본) 폴더와 오른쪽(대상) 폴더를 정의합니다. 동기화 설정의 두 번째 단계에서는 원하는 동기화 유형을 선택합니다.
"Synchronize"는 양방향 데이터 백업 방식입니다. 왼쪽이나 오른쪽 어느 쪽에서든 새 파일이 생기거나 업데이트되면 변경 사항이 반대편 디렉터리로 복사됩니다. 반면 Echo는 왼쪽 디렉터리의 모든 변경 사항을 오른쪽으로 미러링합니다. 특정 디렉터리를 백업할 때 대부분의 사용자가 원하는 것은 바로 이 방식입니다. 모든 변경 사항이 백업본에 그대로 반영되기를 원하기 때문입니다.
여기서 소개할 예약 실행 솔루션에서는 네 개의 폴더 쌍을 설정했습니다. 각 쌍은 하루 중 특정 시간대에 처리할 백업입니다. 아침에는 한 폴더를, 정오에는 다른 폴더를 백업하는 식입니다.
자동 백업을 수행할 폴더를 모두 설정했다면, 이제 마이크로소프트가 도구에 내장한 명령줄 기능을 활용해 SyncToy를 실행하는 스크립트를 준비할 차례입니다.
SyncToy 자동화 스크립트 설정
아래에서 소개할 VB 스크립트는 현재 시각을 확인한 후, 적절한 명령을 실행해 마이크로소프트 SyncToy 프로그램을 구동하고 올바른 디렉터리를 백업합니다.
스크립트는 앞서 설정한 폴더 쌍의 이름을 사용합니다. 메모장에 스크립트를 붙여넣고 "databackup.wsf" 같은 이름으로 저장하세요.
<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim HourNow
Dim strHour
Dim WshShell
Dim strProgFiles
HourNow = Hour(Now())
set WshShell=CreateObject("WScript.Shell")
strProgFiles = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
Select Case HourNow
case HourNow >= 0 and HourNow < 7
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R MorningFiles"
case HourNow >= 7 and HourNow < 13
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R NoonFiles"
case HourNow >= 13 and HourNow < 19
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R MailArchives"
case else
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R EveningFiles"
End Select
WScript.Quit
</script>
</job>
위 스크립트는 현재 시각(스크립트가 실행되는 PC의 시계 기준)을 확인합니다. 자정부터 오전 6시 59분 사이라면 "MorningFiles" 쌍을 동기화하고, 오전 7시부터 오후 12시 59분 사이에는 "NoonFiles" 쌍을 동기화하는 식입니다.
이제 남은 일은 위 스크립트를 하루 네 번, 네 개의 시간대에 맞춰 실행하도록 Windows 예약 작업을 설정하는 것입니다. 이것도 매우 간단합니다. 제어판 → 관리 도구 → 작업 스케줄러를 연 후 "Create Task(작업 만들기)"를 클릭하세요.
작업 이름을 지정한 후 트리거 탭을 클릭합니다. "On a schedule(일정에 따라)"를 선택하고, Daily(매일), recur every day(매일 반복), start at 3 a.m.(오전 3시 시작)으로 설정한 뒤, 하단에서 6시간마다 작업을 반복하도록 지정합니다. 이렇게 하면 오전 3시, 9시, 오후 3시, 오후 9시에 작업이 실행됩니다.
이 네 시각은 모두 스크립트에 설정한 네 개의 시간대 안에 포함됩니다. 이제 Actions(동작) 탭을 클릭하고 드롭다운 목록에서 "Start a program(프로그램 시작)"을 선택한 후, 스크립트를 저장한 위치를 찾아 지정합니다.
이것으로 끝입니다! 이제 작업 스케줄러가 하루 네 번 단일 스크립트를 실행합니다(여러 개의 작업을 만들 필요가 없습니다). 스크립트는 명령 모드로 SyncToy를 구동하며, "-R" 뒤에 지정한 폴더 쌍 이름에 따라 "SyncToyCmd.exe -R EveningFiles" 같은 명령을 실행합니다.
스크립트가 제대로 작동하는지 확인하려면 "C:\Users\Owner\AppData\Local\Microsoft\SyncToy\2.0\SyncToyLog.log" 경로의 SyncToy 로그 파일을 살펴보세요.
로그는 SyncToy가 실행될 때마다 업데이트되며, 어떤 디렉터리가 백업되었는지, 언제 완료되었는지, 파일 수와 백업 크기까지 상세히 보여줍니다.
이 데이터 백업 솔루션이 여러분에게도 유용할까요? 중요한 데이터 파일과 폴더를 자동으로 백업하는 다른 방법이 있다면 아래 댓글로 의견을 공유해 주세요.
이미지 출처: Shutterstock