최근파일 남기고 오래된 파일 삭제 방법

최근파일 남기고 오래된 파일 삭제 방법은 Vbs 스크립트를 작성하면 됩니다. 아래파일은 syncback pro에서 백업파일중에서 최근 파일만 남기고 오래된 파일은 자동으로 삭제하는 방법입니다.

syncback pro에서 오래된 파일 자동으로 삭제하는 방법

오래된 파일을 자동으로 지우는 방법은 프로필에서 프로그램 이전에 실행할수도 있고, 이후에 실행하는 방법도 있습니다. 아래 그림에서는 예약작업 이전에 실행하는 예시이며, “최근파일남기기.vbs”파일은 아래와 같습니다.

syncback pro 예약작업

“최근파일남기기.vbs” 소스코드

아래 예제는 “c:\DB서버백업”폴더를 예로하지만 네트워크 폴더 “\\SERVER\공유폴더이름” 으로 작성할 수 있습니다.


Dim objFSO, objFolder, objFile, fileList(), fileCount, i, j, temp

' 대상 폴더 경로 설정
Const targetFolder = "c:\DB서버백업"

' FileSystemObject 생성
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(targetFolder)

' 폴더 내 파일 개수 확인
ReDim fileList(objFolder.Files.Count - 1)

' 파일 목록을 배열에 저장
i = 0
For Each objFile In objFolder.Files
    ' VBS 파일은 배열에 추가하지 않음
    If LCase(objFSO.GetExtensionName(objFile.Name)) = "dmp" Or LCase(objFSO.GetExtensionName(objFile.Name)) = "log" Then
        Set fileList(i) = objFile
        i = i + 1
    End If
Next

' 배열 크기를 실제 추가된 파일 개수로 조정
ReDim Preserve fileList(i - 1)

' 파일 수정 날짜에 따라 정렬 (최신 파일이 위로 오도록 버블 정렬 사용)
For i = UBound(fileList) To 1 Step -1
    For j = 0 To i - 1
        If fileList(j).DateLastModified < fileList(j + 1).DateLastModified Then
            Set temp = fileList(j)
            Set fileList(j) = fileList(j + 1)
            Set fileList(j + 1) = temp
        End If
    Next
Next

' 남길 파일 개수 설정 (여기서는 6개)
fileCount = 10

' 파일 삭제: 최근 6개의 파일만 남기고 나머지 삭제
For i = fileCount To UBound(fileList)
    objFSO.DeleteFile fileList(i).Path
Next

' 객체 정리
Set objFSO = Nothing
Set objFolder = Nothing
Set objFile = Nothing

위 소스는 .dmp, .log 최근 n개를 남기고 이전파일은 삭제하는 스크립트입니다. 이렇게 syncback pro에서 백업한 파일의 버전관리나 갯수, 용량관리를 하면 편리합니다.