bat 파일을 이용한 로그 파일 관리
기존 로그 환경 매일마다 로그가 쌓임(실제로는 stdout.log, gamis_error.log 등) 문제점 : 불필요한 오래된 로그파일 및 용량 차지 예)
문제 해결 방안 및 환경 해결 방안 일주일 단위로 압축 6개월 단위로 삭제 환경 Windows Server 2008에서 사용 Biz Server에서 각각 돌리는 것이 아니라 다른 프로그램 사용 배치 프로그램, 자바파일, vbscript 등 가능한 것으로 개발
bat 파일을 이용한 방법-1 bat 파일 와 Windows Server 2008의 작업 스케줄러을 이용한 방법 rem 로그파일이 있는 위치 set SRC1=d:\projects\GAMIS_WEB\log rem 저장될 위치 set TGT1=d:\projects rem 압축할 기간 set SETDAY=7 for /F "tokens=1-3 delims=/ " %%a in ('date /t') do SET DT=%%a%%b%%c if "%1"=="" ( for /F "tokens=1" %%a in ('date /t') do set orgdate=%%a ) else ( set orgdate=%1 ) BizServer 추가시 반복 작업 해야 할 것. -로그 파일 경로(SRC) -압축 파일 저장 위치 지정(TGT) set SRC = BizServer 로그 경로 set TGT = 압축 파일 저장 위치
bat 파일을 이용한 방법-2 :년월일 분리 set yy=%orgdate:~0,4% set yy2=%orgdate:~0,4% set mm=%orgdate:~5,2% set mm2=%orgdate:~5,2% set dd=%orgdate:~8,2% :월, 일의 숫자화 set /a mm=1%mm%-100 set /a mm2=1%mm2%-100 set /a dd=1%dd%-100 set /a dd=dd-%SETDAY% set /a TEMPSTR = %dd% set /a mm2=mm2-7 if %mm2% LEQ 0 set /a mm2=12%mm2%&&set /a yy2=yy2-1 if %dd% GTR 0 goto end :월 처리 set /a mm=mm-1 if %mm% LEQ 0 set mm=12&&set /a yy=yy-1
bat 파일을 이용한 방법-3 echo set sub=0030101001010 >sub.bat echo set /a dd=31-%%sub:~%mm%,1%% >>sub.bat call sub.bat :윤년처리 :4년주기 set /a u=yy %% 4 if not %u%==0 goto end :100년주기, 400년주기 set /a u=yy %% 400 set /a v=yy %% 100 if %v%==0 if not %u%==0 goto end :2월인지 체크 if %mm% EQU 2 set /a dd=dd+1 :end set mm=0%mm% set mm=%mm:~-2% set dd=0%dd% set dd=%dd:~-2% if %TEMPSTR% LSS 0 set /a dd=%dd%%TEMPSTR%
bat 파일을 이용한 방법-4 BizServer 추가시 반복 작업 해야 할 것. -로그 파일 경로 접근 (SRC) set DT=%yy%%mm%%dd% for /f "tokens=1-4 delims=- " %%A in ('echo %DATE% ') do (set DT2=%%A%%B%%C) rem 폴더 위치로 접근(압축시 경로를 지정할 수 있으나 지정시 폴더까지 압축이 됨.) d: cd \ cd %SRC1% rem 압축 zip -r stdout.log.%DT%~%DT2%.zip stdout.log.*.log zip -r gamis_error.log.%DT%~%DT2%.zip gamis_error.*.log rem 로그 삭제 del %SRC1%\stdout.log.*.log del %SRC1%\gamis_error.log.*.log if %mm2% LSS 10 set mm2=0%mm2% rem 7개월이상 로그 삭제 del %SRC1%\stdout.log.%yy2%%mm2%*.zip del %SRC1%\gamis_error.log.%yy2%%mm2%*.zip BizServer 추가시 반복 작업 해야 할 것. -로그 파일 경로 접근 (SRC) -압축, 삭제, 압축파일 삭제(SRC)
bat 파일을 이용한 방법-5 - Windows Server 2008의 작업 스케줄러 클릭
bat 파일을 이용한 방법-6 명칭 설명 대상
bat 파일을 이용한 방법-7 클릭 설정
bat 파일을 이용한 방법-8 클릭 설정
차후 보안해야 할 것들 일주일 마다 bat파일을 실행 시 남아 있는 모든 log 파일을 압축하므로 처음 적용 시 기존에 있던 로그파일은 하나의 파일로 압축됨. 6개월 단위로 삭제하기 위해서 6개월의 정확한 일자를 구해야 하는데 구하기가 힘든 관계상 7개월 이상의 것들만 삭제되게 구현함.