windows os 의 oracle 환경에서

cmd 스크립트를 이용한 아카이브 파일 삭제하는 방법 입니다.

아카이브 삭제 파일 실행 스크립트

—  deloldfile.cmd

@echo off

REM ↘ 지식파일 설명 
REM 윈도우즈에서 특정 날짜 이전에 생성된 디렉토리를 삭제하는 스크립트입니다.
REM (사용예) delolddir.cmd [디렉토리경로] [삭제일]
REM C:\logdir 디렉토리 내에 30일 이전에 생성된 디렉토리를 삭제하고자 한다면..
REM > delolddir.cmd C:\logdir -30
REM (주의1: 위와 같이 실행할 경우 C:\logdir 디렉토리의 하위 디렉토리 중 30 일 이전에 생성된 디렉토리는 모두 삭제되니 주의하셔서 테스트 하시기 바랍니다.)
REM 
REM ↘ 하고싶은 말 | 홍보문구, 매뉴얼 
REM 주기적으로 로그화일이 생성되는 디렉토리를 일정량만 유지 관리하고자 할 때 사용하실 수 있습니다.
REM 윈도우즈 예약작업에 등록하여 하루에 한번 실행되도록 하면 원하는 분량의 디렉토리 화일만 유지할 수 있겠죠.. 

set vbfile=_delolddir.vbs

echo Option Explicit > %vbfile%
echo Dim objFS, objRoot, objArgs >> %vbfile%
echo Dim szRoot, szMsg, targetDiff >> %vbfile%
echo Dim nRetVal >> %vbfile%

echo set objFS = CreateObject( "Scripting.FileSystemObject" ) >> %vbfile%
echo set objArgs = Wscript.Arguments >> %vbfile%

echo If objArgs.Count ^>= 2 Then >> %vbfile%
echo 	szRoot = objArgs.Item(0) >> %vbfile%
echo 	targetDiff = objArgs.Item(1) >> %vbfile%
echo Else  >> %vbfile%
echo	szMsg = "지울 파일이 있는 디렉토리명과 삭제일을 지정해주지 않았습니다." >> %vbfile%
echo 	szMsg = szMsg ^& " 만약 3일 이전(정확히 3일째 파일 제외) 파일을 삭제하려면 -3 을 입력하시면 됩니다." >> %vbfile%
echo	szMsg = szMsg ^& " 실제로 삭제되니 충분히 테스트 한 후 사용하시기 바랍니다. (정말 주의 바람 복구 안됨)" >> %vbfile%
echo	Wscript.Echo szMsg >> %vbfile%
echo	Wscript.Quit >> %vbfile%
echo End If >> %vbfile%

echo If objFS.FolderExists( szRoot ) then >> %vbfile%
echo  Dim objFolder >> %vbfile%
echo  Dim objFiles >> %vbfile%
echo  Dim objFile >> %vbfile%
echo 	set objFolder = objFS.GetFolder( szRoot ) >> %vbfile%
echo  set objFiles = objFolder.files >> %vbfile%

echo 	For each objFile in objFiles >> %vbfile%
echo 		if IsObject( objFile ) Then >> %vbfile%
echo 			nRetVal = DisplayFile( objFile ) >> %vbfile%
echo 		end If >> %vbfile%
echo 	Next >> %vbfile%

echo End If >> %vbfile%

echo Function DisplayFile( objFile1 ) >> %vbfile%
REM echo 	 If DateDiff("d", Now, CDate(objFile1.DateCreated)) ^< Int(targetDiff) Then >> %vbfile%
echo 	 If DateDiff("d", Now, CDate(objFile1.DateLastModified)) ^< Int(targetDiff) Then >> %vbfile%
echo 	   'Wscript.Echo objFile1.Name >> %vbfile%
echo     objFile1.Delete >> %vbfile%
echo 	 End If >> %vbfile%
echo End Function >> %vbfile%

cscript //NoLogo //T:10 %vbfile% %1 %2

del %vbfile%

@echo on

 

이 수행 스크립트를 수행 시킬 스크립트

— delfile.cmd 파일 내용

call D:\작업\ppp\deloldfile.cmd c:\test -3

 

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다