본문 바로가기
㏈ª By β┖υΕJini/MS-SQL

VB 스크립트를 이용한 윈도우 예약 작업(파일 카피 및 삭제)

by ㏈ª ☞ β┖υΕJini.κR 2009. 2. 12.


우선 매일 D:\BACKUP\DailyBackup\날짜 디렉토리로 특정 날짜의 디렉토리가 누적 생성이 되며

각 DB 서버에서 SSIS 를 이용 하여 D:\BACKUP\DailyBackup 디렉토리로  파일이 전송 된다.

이렇게 모인 모든  데이터중  일 데이터만 백업을 하기 위해서

D:\TapeBackUp\날짜 디렉토리를  생성하여

그 날짜 데이터만을 복사 하여 일 데이터만 가지고 있게 구현 하여 보았다.


Option Explicit
On Error Resume Next
  
Dim objFSO
Dim TempFolder
Dim strPath
Dim SubDir
Dim sd
Const OverwriteExisting = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject") #파일 관련 비베 객체 생성

TempFolder = "D:\TapeBackUp"  #하루치 데이터만 가지고 있을 폴더 정의

objFSO.DeleteFolder TempFolder  #전날에 데이터를 지우기 위해 TempFolder  삭제

objFSO.CreateFolder TempFolder #금일 데이터를 복사 하기 위한 TempFolder 생성

if Month(Now) < 10 then
    if Day(Now) < 10 then
        TempFolder = "D:\TapeBackUp\" & Year(Now) & "-0" & Month(Now) & "-0" & Day(Now)
 strPath = "D:\BACKUP\DailyBackup\BAK_" & Year(Now) & "0" & Month(Now) & "0" & Day(Now)
    else
        TempFolder = "D:\TapeBackUp\" & Year(Now) & "-0" & Month(Now) & "-" & Day(Now)
 strPath = "D:\BACKUP\DailyBackup\BAK_" & Year(Now) & "0" & Month(Now) & Day(Now)
    end if
else
    if Day(Now) < 10 then
        TempFolder = "D:\TapeBackUp\" & Year(Now) & "-" & Month(Now) & "-0" & Day(Now)
 strPath = "D:\BACKUP\DailyBackup\BAK_" & Year(Now) & Month(Now) & "0" & Day(Now)
    else
        TempFolder = "D:\TapeBackUp\" & Year(Now) & "-" & Month(Now) & "-" & Day(Now)
 strPath = "D:\BACKUP\DailyBackup\BAK_" & Year(Now) & Month(Now) & Day(Now)
    end if
end if

objFSO.CreateFolder TempFolder  #금일 데이터를 복사할 폴더 생성

Set SubDir = objFSO.GetFolder(strPath)  #복사 대상 폴더 정의
For Each sd In SubDir.Files #복사 대상 폴더 하위의 파일을 배열로 정의
 objFSO.CopyFile strPath & "\" & sd.name , TempFolder & "\", OverwriteExisting
Next


각 회사의 정책에 따라 다르겠지만... 매일매일 그날의 데이터만 테입 백업을 해야 한다면

이런식으로 데이터를 옮겨 D:\TapeBackUp 디렉토리를 테입백업 스케쥴러에 걸어 사용 한다면

하루치 데이터만 테입 백업을 할수 있게 된다.