forfiles.exe는 Windows에 기본 포함된 명령줄 유틸리티 프로그램이며. 여러 파일을 조건에 맞게 찾아서 일괄 처리 할 때 사용됩니다.
-
테스트 목적
Windows Server를 운영하고 있는데, 보안과 장애 문제 때문에 로그를 60일 동안 보관해야 해요.
90일이 지나면 용량만 차지하는 데이터라서 삭제할 예정이고요.
그런데 매번 90일마다 찾아서 하나하나 삭제하는 건 비효율적이라고 생각해서, 자동으로 60일이 지난 로그가 삭제될 수 있도록 설정할 거예요.
forfiles.exe는 아래 경로에 위치해 있습니다. 만약 System32 외의 경로에 있다면, 안전한 파일인지 확인해야 합니다.
C:\Windows\System32\forfiles.exe
-
주요 옵션
|
옵션
|
설명
|
|
/p
|
경로 지정
|
|
/s
|
하위 폴더 포함
|
|
/m
|
파일 이름 필터
|
|
/d
|
날짜 조건
|
|
/c
|
실행할 명령
|
-
구성
1. 실행창에서 "taskschd.msc" 입력 후 확인

2. 작업 스케줄러가 열리면 오른쪽 "작업 만들기" 클릭

3. 아래와 같은 창이 열리는데 일반에서 이름, 설명을 입력하고 "가장 높은 수준의 권한으로 실행"도 체크합니다.

4. 트리거에서 오전 10시에 매일 실행되도록 설정했습니다. 참고하시는 분들은 상황에 따라서 설정하시면 됩니다.

5. 동작에서 프로그램/스크립트의 오른쪽 찾아보기를 누르고 forfiles.exe 찾아서 선택합니다.
6. 인수 추가(옵션)에서 위에 언급한 옵션을 활용하여 조건을 넣어줍니다.
6. 인수 추가(옵션)에서 위에 언급한 옵션을 활용하여 조건을 넣어줍니다.
p "C:\Windows\System32\winevt\Logs" /s /d -60 /m Archive*.evtx /C "cmd /c del @file"
어떤 파일들이 삭제되는지 확인을 하고 싶을 경우
del @file 대신에 echo @file을 넣어주시면 됩니다.
7. 테스트 할 때 위와 같이 설정하였으며, 내용은 다음과 같습니다.
"C:\Windows\System32\winevt\Logs에 있는 파일(하위 폴더 포함)에서 60일이 경과 되었고 파일명의 앞에 Archive가 포함되어 있으며 확장명 evtx 이면 삭제합니다." 라는 내용입니다.
"C:\Windows\System32\winevt\Logs에 있는 파일(하위 폴더 포함)에서 60일이 경과 되었고 파일명의 앞에 Archive가 포함되어 있으며 확장명 evtx 이면 삭제합니다." 라는 내용입니다.

여기까지 따라오셨으면 설정할 것들은 다 하신 겁니다. 뒤에 조건, 설정, 기록은 변경 없이 진행 하겠습니다.
확인을 눌르면 아래와 같이 oldLOGdelete가 생성된 것을 확인 되었습니다.

위와 같이 설정하셨으면 매일 오전 10시에 oldLOGdelete 스케줄러가 실행되며, 60일이 경과된 조건에 포함된 log는 삭제가 자동으로 이루어집니다.
감사합니다.
'Technical > System' 카테고리의 다른 글
| Linux 로그 수집 기간 변경하는 법 (0) | 2025.09.29 |
|---|---|
| tacacs 서버 설치 방법(Rocky Linux9.5) (2) | 2025.08.12 |
| RedHat/Rocky Linux 8 iptables 정책 초기화될 경우 (4) | 2025.07.16 |
| IBM Storwize V5000 디스크 추가 및 기존 볼륨 확장하는 방법 (0) | 2025.05.07 |
| Windows 서버에서 SNMPv3 설정하기 (Net-SNMP) (1) | 2025.04.23 |
댓글