우선 매일 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 디렉토리를 테입백업 스케쥴러에 걸어 사용 한다면
하루치 데이터만 테입 백업을 할수 있게 된다.
a라는 컴퓨터에서 서버의 특정폴더를 예약작업으로 자동 복사하려고 하던중에 우연하게 이글을 보게 되었는데요
이건 확장자가 vbs로 저장해야 하나요? 그리고 복사 대상폳더 정의를 할때
예를들어 Set SubDir = objFSO.GetFolder(strPath = "\\10.111.25.121\test\data\"
이렇게 입력하면 되나요?
제가 초보여서요 부탁좀 드립니다.
답글