728x90
반응형
- 파일을 삭제하는 이유 : 로컬 서버에 개발을 진행하다 보면, 누적하여 log 파일이 많이 쌓여서 하드디스크가 빠르게 찰 수 있음
- 목표 : 주기적으로 삭제하는 bat 파일의 커맨드를 작성하고 스케줄링을 등록하여 자동화한다.
- bat 파일 작성하기
우선 forfiles 명령어를 사용할 것이다.
forfiles 명령어는 파일 또는 파일 집합에서 명령을 선택하고 실행이 가능한 명령어다.
정리하면, forfiles 명령어를 활용하여 원하는 디렉터리의 원하는 패턴의 파일을 추출한 뒤, 삭제 명령어를 날리는 bat 파일을 작성하는 것이다.
내가 작성한 bat 파일의 내용의 일부이다.
forfiles /P C:\workspace /S /M log*.txt /D -5 /C "cmd /c del @file"
위 명령어를 설명하면 아래와 같다
- /P [pathname] : 해당 경로에서 검색 출발
- /S : 하위 디렉터리까지 포함해서 검색하는 옵션 킴
- /M [searchmask] : 찾을 파일명의 패턴 지정 (log로 시작하는 모든 txt 파일)
- /D [+ | -] [{<date> | <days>}] : 지정된 기간 내에 마지막으로 수정된 날짜 파일 선택(/D -5 = 5일 지난 파일)
- /C [command] : 실행할 커맨드 명령어 - 파일 삭제
위 명령어를 해석하면
C:\workspace 부터 하위 디렉터리까지 모두 포함하여 log*.txt 패턴이면서 5일이 지난 파일들을 찾아 삭제하는 명령어다.
작성한 bat 파일을 실행하면 파일이 삭제된다.
bat 파일 작성이 끝났으니, 스케줄링 등록을 하자
2. 작업 스케줄러 등록하기
- 좌측 하단에 작업 스케줄러 검색 후 열기
2. 작업 만들기 버튼 클릭
3. 일반 - 이름 및 설명 등록(정보성)
4. 트리거 등록(매일 저녁 08시에 실행하도록 설정함)
5. 실행할 동작 설정(만든 bat 파일 연결)
6. 조건 설정하기(컴퓨터가 꺼져있어도, 네트워크가 연결되지 않아도 동작시키기 위해 아래 옵션 체크 해제)
7. 저장 확인
그럼 이제 지정된 시간에 해당 bat 파일이 실행되어 파일이 삭제된다.
728x90
반응형
댓글