홈페이지 » 어떻게 » 이전 로그 파일 삭제 프로세스 자동화

    이전 로그 파일 삭제 프로세스 자동화

    많은 서비스와 프로그램은 로그 파일을 자신이 수행하는 모든 작업에 대한 감사 추적으로 생성하지만, 유용성을 유지하면서이 파일을 제거하는 기능은 거의 없습니다. 결과적으로 이러한 로그 파일은 시스템에 공간을 차지하며 (때로는 아는 것보다 많음) 액세스해야하는 시간대의 디렉토리가 혼란 스럽습니다..

    따라서 이러한 파일이 필요하지 않은 경우 보관해야하는 이유는 무엇입니까? 우리는 시스템을 멋지고 깔끔하게 유지하기 위해이 오래된 로그 파일을 쉽게 제거하는 방법을 보여줄 것입니다..

    물론 아래에서 다루는 내용은 로그 파일을 관리하는 데 즉시 유용하지만 다른 유형의 "만료되는"파일 (예 : 백업)에도 동일한 기술을 적용 할 수 있습니다..

    마지막 수정 날짜를 기준으로 파일 제거

    전적으로 파일의 최종 수정 날짜를 기준으로 기존 로그 파일을 지우려면 FORFILES 명령을 사용해야합니다. 예 :

    FORFILES / P "C : LogFiles"/ S / D -7 / C "CMD / C DEL / F / Q @PATH"

    위의 명령을 실행하면 "C : LogFiles"폴더의 모든 파일과 지난 주 수정되지 않은 모든 하위 폴더가 삭제됩니다.

    FORFILES 명령은 검색 패턴과 날짜 기능에 매우 유연합니다. 예를 들어, 숫자 대신에 '-1/13/2010'과 같은 날짜를 입력하여 지정된 날짜 이전에 마지막으로 수정 된 파일을 삭제할 수 있습니다.

    FORFILES가 수행 할 수있는 작업에 대한 자세한 내용을 보려면 명령 프롬프트에서 다음 명령을 사용하여 온라인 도움말을보십시오.

    FORFILES /?

    파일 이름의 날짜 패턴을 기반으로 파일 제거

    많은 응용 프로그램 및 서비스는 하루에 하나의 로그 파일 (예 : Log100113.txt, Backup-2010-01-13.zip 등)을 갖도록 날짜 패턴을 기반으로 로그 파일을 생성합니다. 이러한 유형의 파일의 경우 최종 수정 날짜가 아닌 파일 이름에 통합 된 파일 날짜를 기준으로 삭제하는 것이 좋습니다. 이는 지난 3 개월 동안 모든 로그 파일을 보관하는 것과 같은 시나리오에 유용합니다. 불행히도, Windows는 이러한 유형의 논리를 가진 네이티브 커맨드를 가지지 않지만 배치 스크립트를 사용하면이 작업을 쉽게 처리 할 수 ​​있습니다.

    스크립트에 대한 사용법 주석에 예제가 포함되어 있기 때문에 알아낼 수 있어야합니다..

    스크립트

    @ECHO OFF 에코 날짜 패턴에 따라 삭제 ECHO 글쓴이 : Jason Faulkner ECHO SysadminGeek.com ECHO. 에코. REM 파일 명명 패턴에 MM 및 / 또는 DD를 사용하는 날짜를 기준으로 파일을 삭제 / 선택합니다. REM REM 사용법 : REM DeleteByDatePattern / M | / D NumberToKeep 경로 PatternPrefix PatternPostfix [/ L | / DEL] REM / M 사용되는 패턴이 월을 기준으로 지정합니다. REM / D 사용되는 패턴이 일을 기준으로 지정합니다. REM NumberToKeep REM 현재를 포함하여 보관할 월 수 (/ M) 또는 일 수 (/ D). REM 예를 들어, 1을 입력하면 현재 월 / 일만 유지되고 6은 현재 마이너스 5를 유지합니다. REM Path 검색 할 루트 위치입니다. 서브 디렉토리가 검색됩니다. REM PatternPrefix REM 검색 문자열을 작성할 때 월 / 일 이전에 배치 된 파일 검색 패턴. REM PatternPostfix REM 검색 문자열을 작성할 때 월 / 일 다음에 배치되는 파일 검색 패턴. REM / L (선택 사항) 패턴과 일치하는 모든 파일을 나열하지만 삭제하지는 않습니다. REM / DEL (선택 사항) 패턴과 일치하는 모든 파일을 삭제합니다. REM REM 예 : REM DeleteByDatePattern / M 3 "% WinDir % system32LogFiles"ex ?? ??. log / DEL REM 현재 및 이전 두 달을 제외한 모든 IIS 로그 파일 (Windows Server 2003)을 삭제합니다. REM DeleteByDatePattern / D 7 "D : Backup"* - ???? - ?? - .zip / DEL REM 현재 주를 제외하고 D : Backup 폴더에서 모든 zip 파일을 삭제합니다. REM 해당 파일 이름 패턴은 "* -YYYY-MM-DD.zip"REM DeleteByDatePattern / M 0 "C :"* () * / L REM 패턴과 일치하는 C 드라이브의 모든 파일 목록을 인쇄합니다. * -MM- * "(MM은 01-12로 바뀜) REM DeleteByDatePattern / D 14"C : Logs "Log - ???? .txt REM 스크립트가 처리 할 모든 패턴 목록을 인쇄합니다. SETLOCAL EnableExtensions EnableDelayedExpansion REM Windows 날짜 / 시간 설정이 'DayOfWeek M / D / YYYY'형식으로 설정되어 있다고 가정합니다. REM 형식이 다른 경우 아래의 변수를 변경하여 정렬해야합니다. DO (SET Month = %% B SET Day = %% C SET Year = %% D) IF (토큰) = 1,2,3,4 delims = / "%% A IN ( 'DATE / T' / / % 1 == / D (SET 유지 = % 일 % SET 최대 = 31) SET / A PrevMonth = % Month % -1 IF! PrevMonth! EQU 2 (SET Max = 28 REM 도약 년 ... 필요에 따라 추가하십시오.) IF / I % 연도 % EQU 2012 SET Max = 29 EQU 6 SET Max = 30 IF / I! PrevMonth! EQU 6 SET MAX = 30 IF / I! PrevMonth! EQU 9 SET MAX = 30 IF / I! PrevMonth! EQU 11 SET Max = 30) SET 전류 = % % SET / A 유지 = % % % - % 2 + 1 REM 제거 할 범위를 결정합니다. SET / A RemoveHighStart = % 현재 % + 1 IF / I % LSS 1 유지 (SET RemoveLow = 0 SET / A RemoveHighEnd = % 유지 % + % 최대 % -1) ELSE (SET / A RemoveLow = % Keep % -1 SET RemoveHighEnd = % Max %) REM 모든 범위가 저 범위보다 작습니다. % / % % Z IN (1,1, % RemoveLow %) DO CALL : 프로세스 %% Z % 3 % 4 % 5 % 6 REM 높은 범위보다 큰 값을 모두 처리합니다. 0 % 1 SET 키 = % 키 : % 0 Z % 3 % 4 % 5 % 6 ENDLOCAL GOTO 끝 : 프로세스 SET 키 = 0 % ~ 2 % SET 목표 = "% ~ 2 % ~ 3 % 키 %% ~ 4"ECHO 목표 패턴 : % 목표 % IF / I % 5 == / L DIR % 목표 % / B / S IF / I % 5 == / DEL DEL / F / S / Q % 목표 % GOTO 끝 : 끝

    프로세스 자동화

    FORFILES 명령은 Windows에서 기본이지만 DeleteByDatePattern 스크립트는 Path 변수 (예 : Windows 폴더)에 정의 된 폴더에 있어야하므로 기본 명령 인 것처럼 호출 할 수 있습니다. 이 작업이 완료되면 단일 명령 (단일 위치에서만 삭제가 필요한 경우) 또는 일별, 주별, 월별로 실행되는 배치 파일 (여러 위치에서 삭제해야하는 경우) 중 하나 인 예약 된 작업을 생성 할 수 있습니다 또는 언제든지.

    한 가지 더 설정하고 잊어 버릴 수 있습니다..

    모래밭

    Sysadmin Geek의 날짜 별 패턴 스크립트 삭제