윈도우 서버를 운영하다 보면 시스템, 애플리케이션, 보안 로그 등 다양한 로그 파일이 쌓이게 됩니다. 시간이 지날수록 이러한 로그 파일은 디스크 용량을 소모하고, 서버 성능 저하의 원인이 될 수 있습니다. 특히 이벤트 로그 외에도 자체적으로 생성되는 텍스트 기반의 로그 파일(.log, .txt 등)은 정리되지 않으면 운영 리스크로 이어질 수 있습니다.
이 글에서는 윈도우 서버에서 로그 파일을 자동으로 정기 삭제하는 가장 효율적인 방법을 안내합니다. PowerShell 스크립트, 작업 스케줄러(Task Scheduler)를 이용한 자동화 방법과 함께, 주의사항, 백업 여부 등도 함께 살펴보겠습니다.
1. 왜 로그 파일을 주기적으로 삭제해야 할까?
- 디스크 공간 확보: 불필요한 로그 파일은 하드디스크 용량을 점유합니다.
- 시스템 성능 유지: 파일이 많아질수록 검색 및 접근 속도 저하 가능성.
- 보안 관리: 오래된 로그 파일에는 민감 정보가 남아있을 수 있음.
- 운영 효율성 향상: 자동화로 수동 삭제의 번거로움 해소.
2. 로그 파일 삭제 대상 확인
삭제할 로그 파일은 보통 아래 경로에 위치합니다:
C:\Windows\System32\LogFiles\
C:\inetpub\logs\LogFiles\
- 사용자 지정 애플리케이션의 로그 디렉토리 (예:
D:\AppLogs\
)
삭제 전 꼭 필요한 로그는 백업하세요. 예기치 않은 문제 분석에 사용될 수 있습니다.
3. PowerShell을 활용한 로그 파일 삭제 스크립트
다음은 30일 이상된 로그 파일을 자동 삭제하는 PowerShell 스크립트 예시입니다.
# 삭제 대상 경로 지정
$logPath = "D:\AppLogs"
# 유지 기간(일 수)
$retentionDays = 30
# 현재 날짜 기준으로 오래된 파일 삭제
Get-ChildItem -Path $logPath -Recurse -Include *.log, *.txt |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$retentionDays) } |
Remove-Item -Force
주요 설명:
Get-ChildItem
: 지정된 경로의 파일 목록을 가져옵니다.Where-Object
: 마지막 수정일 기준으로 오래된 파일 필터링.Remove-Item
: 해당 파일 삭제.
4. 작업 스케줄러(Task Scheduler)로 자동 실행 설정
PowerShell 스크립트를 자동으로 실행하려면 작업 스케줄러를 사용합니다.
설정 절차:
- 작업 스케줄러 실행
시작 > 작업 스케줄러
입력 후 실행
- 기본 작업 만들기(Create Basic Task)
- 이름 예:
Log File Auto Cleanup
- 설명 추가 가능
- 이름 예:
- 트리거(Trigger) 설정
- 예: 매일 또는 매주 실행
- 작업 설정
- 동작:
프로그램 시작
- 프로그램/스크립트:
powershell.exe
- 인수 추가:
-ExecutionPolicy Bypass -File "D:\Scripts\DeleteLogs.ps1"
- 동작:
- 완료 후 테스트
- 수동 실행 또는 다음 예약 시간까지 대기
5. 보안 및 주의 사항
- ExecutionPolicy 설정: 기본적으로 PowerShell은 스크립트 실행을 제한할 수 있습니다.
Bypass
옵션 사용 권장. - 권한 확인: 로그 파일 삭제 권한이 있는 사용자 계정으로 실행.
- 백업 정책 병행 권장: 삭제 전에 클라우드나 NAS 등으로 로그를 백업해두는 것도 좋습니다.
- 테스트 실행: 실제 삭제 전에
-WhatIf
옵션을 통해 어떤 파일이 삭제될지 확인 가능.
Remove-Item -Path "D:\AppLogs\*.log" -WhatIf
6. 로그 파일 정리 외 추가 팁
- 압축 보관: 삭제 대신
7-Zip
이나 PowerShell로 압축 후 보관도 가능. - Logrotate 대안: 윈도우 환경에서도 Linux의 logrotate처럼 주기적 로깅 관리 스크립트를 구성 가능.
- 타사 솔루션 활용: SolarWinds, Nagios 등 로그 모니터링 툴과 연계하면 더욱 체계적 관리 가능.
7. 요약
항목 | 설명 |
---|---|
대상 파일 | .log , .txt , 기타 로그 형식 |
삭제 기준 | 수정일 기준으로 N일 이상 지난 파일 |
도구 | PowerShell + 작업 스케줄러 |
실행 주기 | 일간, 주간 등 자유롭게 설정 |
보안 | 관리자 권한, 백업 확인 필수 |
자주 묻는 질문 (FAQ)
Q1. .evtx
형식의 이벤트 로그도 삭제 가능한가요?
A. 네, PowerShell의 wevtutil
명령어를 이용해 이벤트 로그를 정리할 수 있습니다. 다만 .evtx
로그는 윈도우 시스템 로그로서 신중하게 관리해야 하며, 삭제보다는 백업 후 정리가 권장됩니다.
wevtutil cl Application
wevtutil cl System
Q2. PowerShell 스크립트를 실행해도 삭제가 되지 않아요.
A. 다음 사항을 확인해보세요:
- 실행 권한 부족 (관리자 권한 필요)
ExecutionPolicy
제한- 경로 오타 또는 존재하지 않는 경로
- 파일이 열려 있어 삭제 불가 상태
Q3. 로그를 삭제하지 않고 압축해서 보관할 수 있나요?
A. 가능합니다. PowerShell에서 압축도 가능합니다:
Compress-Archive -Path "D:\AppLogs\*.log" -DestinationPath "D:\Backups\Logs_$(Get-Date -Format yyyyMMdd).zip"
Q4. 이 작업을 여러 서버에 적용하려면 어떻게 하나요?
A. 다음 방법 중 하나를 활용하세요:
- 공통 스크립트 + 공유 스케줄러 설정
- 그룹 정책(GPO)을 통해 배포
- Ansible, SCCM, PowerShell Remoting 등 자동화 도구 활용
마무리
윈도우 서버의 로그 파일은 서버 관리와 보안 측면에서 중요한 역할을 합니다. 하지만 관리되지 않으면 디스크 공간을 낭비하고, 불필요한 리스크를 초래할 수 있습니다. 이 글에서 소개한 방법을 통해 로그 파일 자동 정리를 실현해보세요.
작업은 간단하지만, 정기적 점검과 백업 정책 병행을 통해 더 안전하고 효율적인 서버 운영이 가능합니다.
🔍 관련 키워드: 윈도우 서버 로그 삭제, PowerShell 로그 정리, 작업 스케줄러 로그 자동 삭제, log cleanup script, Windows Server log maintenance
'전산' 카테고리의 다른 글
# Docker에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |
---|---|
# 리눅스 서버에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |
# 리눅스 GPFS 스토리지 연결하기 (0) | 2025.04.04 |
# 리눅스 NAS 스토리지 연결하기: 완벽 가이드 (NFS / SMB 방법 포함) (0) | 2025.04.04 |
# 리눅스 SAN 스토리지 연결하기: 완벽 가이드 (0) | 2025.04.04 |