본문 바로가기

원도우

IIS 웹로그 압축 스크립트

반응형

IIS 웹로그 압축 스크립트(VBScript)

사용 전 체크리스트

7-Zip 설치 경로 확인

  • C:\Program Files\7-Zip\7z.exe 경로가 정확한지 확인합니다.

압축 포맷

  • 기본적으로 .7z 압축을 사용하며 gzip .gz를 원한다면 gzip.exe를 따로 사용하거나 7z의 gzip 포맷 지정이 필요합니다.

IIS 웹로그 압축 스크립트

' IIS 웹로그 압축 스크립트
' 최근 30일간의 일/시간 단위 로그 파일을 찾아 7z로 압축 후 원본 삭제

Option Explicit

Dim zipCmd, logDir, fso, shell
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")

zipCmd = """C:\Program Files\7-Zip\7z.exe"""
logDir = "D:\LogFiles\W3SVC1\"

Dim i, targetDate, yy, mm, dd, hh, logFile, h

For i = 1 To 30
    targetDate = DateAdd("d", -i, Date)
    yy = Right(Year(targetDate), 2)
    mm = Right("0" & Month(targetDate), 2)
    dd = Right("0" & Day(targetDate), 2)

    ' ■ 일 단위 로그 압축
    logFile = "u_ex" & yy & mm & dd & ".log"
    If fso.FileExists(logDir & logFile) Then
        Call CompressAndDelete(logDir & logFile)
    End If

    ' ■ 시간 단위 로그 압축
    For h = 23 To 0 Step -1
        hh = Right("0" & h, 2)
        logFile = "u_ex" & yy & mm & dd & hh & ".log"
        If fso.FileExists(logDir & logFile) Then
            Call CompressAndDelete(logDir & logFile)
        End If
    Next
Next

' 압축 후 원본 로그 삭제 함수
Sub CompressAndDelete(filePath)
    Dim archivePath
    archivePath = filePath & ".7z"
    shell.Run zipCmd & " a -mx=9 """ & archivePath & """ """ & filePath & """", 0, True
    fso.DeleteFile filePath, True
End Sub

 

참고URL

- 7z 다운로드 URI : 7zip

iisweglogcompress.txt
다운로드

 

반응형