LogParser와 놀기_2

Posted at 2006/08/07 11:21// Posted in dev
LogParser와 놀기_1에서 기본적인 부분에 대해서 살펴보았다. logparse.cmd 라는 배치 파일이었고, 그 배치 파일에 인자를 060807 이런식으로 넣어주면 8월 7일자 로그를 가져와서 파싱하는 방법이었다. 이걸 며칠 하다보니까 매일매일 신경써줘야하는것이 너무 귀찮았다! 역시나 귀찮음은 개발자의 덕목이라는 옛 성현의 말씀[정말?]에 따라서 귀찮기때문에 부지런해지기로 했다.

일단 자동화를 위해서 Windows가 제공하는 도구는 예약 작업at.exe이 있다. 이름만 봐도 알 것 같은 도구들이지만 굳이 얘기하자면, 리눅스 계열의 cron같은 도구이다. 아무튼, 왠지 모르게 at.exe을 이용해서 작업해야할 것 같지만, 제루는 그냥 예약 작업을 이용하기로 했다. 아, 타이핑하기 귀찮아서가 아니다.

'예약 작업을 이용해서 유저가 없는 새벽시간을 이용해서 로그를 파싱한다.' 라는 목표가 생겼다. 목표를 정해놓고 보니, 새벽시간을 이용하므로 우리는 어제의 로그를 파싱해야한다. 빈약한 Windows 쉘 스크립트(shell script)로 문자열 조작을 하려니 뾰족한 방법이 떠오르지 않았다. 아니, 익숙하지 않아서 모른다고 해야할까? 그래서 떠올린 것이 VBScript다. 서버 관리를 위해서 사용하는 스크립트 중에서 강력하고 쉬운게 바로 VBScript[이하 vbs]. 게다가 웹 개발자(ASP)라면 기본적인 문법은 누구나 접했을 것이기 때문에 차후 다른 사람이 유지보수하기에도 용이할 것이라고 판단했다. 물론, 여기서 사용하는 스크립트는 유지보수 고민을 할 정도의 스크립트는 아니지만, 원대하게 발전할 수도 있지 않은가. :)

구글링을 통해서 레퍼런스를 확보한 후, 간단한 작업을 했다. 지난번에 작성한 logparse.cmd 의 내용을 전부 vbs에 넣을 수도 있지만 자동화와 기본적인 부분과 분리를 할 필요성이 있기 때문에 vbs에서 날짜 계산을 해서 logparse.cmd를 호출하는 식으로 진행하기로 했다.

후다닭~

Dim ss
Dim dd
Dim fn
Set ss = CreateObject("WScript.Shell")
dd = CStr(Date - 1)
fn = MID(dd, 3, 2) & MID(dd, 6, 2) & MID(dd, 9, 2)
ss.run "cmd /c c:\inetpub\weblog\logparse.cmd " & fn & " > c:\inetpub\weblog\result" & fn & ".txt" , 1
Set ss = Nothing

logparse.vbs

초 간단한 스크립트가 완성되었다. 어제 날짜를 계산한후 yyMMdd 형식으로 가져와서 logparse.cmd를 호출하는 스크립트다. 그리고 이 파일을 매일 새벽 4시에 호출할 수 있도록, 예약 작업에 추가를 해주었다. 이것이 자동화!

그와 동시에 logparse.cmd쪽도 살짝 업데이트 해주었다. 파일을 관리 서버로 복사하고, 복사가 완료되었으면 원본 로그파일을 삭제하는 스크립트[용량이 너무 많다]를 추가했다. if, del만으로 간단히 구성했으므로 이 글에는 넣지 않겠다.

솔직히, 내용이 부실하고 사용하는 도구들도 강력하지 않지만 이정도만으로도 충분히 귀찮음을 덜어낼 수 있는 자동화라고 생각한다. 자동화를 하기 위해서 Python, Perl같은 훌륭한 스크립트 언어들을 익혀야 한다면 배보다 배꼽이 더 큰 경우밖에 안된다. [익혀두면 많은 도움이 되지만, 여기서는 새로운 도구를 배우기 위해 자동화를 하는게 아니므로 주객전도할 필요는 없겠다. 아.. 참고로 요즘엔 개인적으로 Ruby를 공부중이다.]

기약없는 다음 포스팅에서는, UV와 PV만 나오는게 허전하므로 다른 지표들도 찾아보도록 하자. 로그를 의미있는 데이터로 뽑아보기! 므흣
크리에이티브 커먼즈 라이센스
Creative Commons License
2006/08/07 11:21 2006/08/07 11:21

http://zeru.kr/blog/trackback/313

  1. kabi
    2006/08/10 14:42 [Edit/Del] [Reply]
    나도 이런식으로 해결하는 경우가 많은데..
    일하는 사람으로서 잘한일 이라고 생각한다. ㅋㅋ

    예전에 초날림으로 간단한 목적의 검색엔진을 grep으로 짠 적도 있었지 아마 -_-;

    윈도우 스크립팅 호스트로 업로드한 이미지 썸네일 생성하기..도 있었군 -_-
    • 제루
      2006/08/10 16:35 [Edit/Del]
      하핫.. 네네;

      역시나 그렇긴해도 좋은 스크립트 언어는 하나 익혀두는게 필요할꺼 같아서 Ruby 보고 있죠 ^^;;
      잘은 돌아가는데, 조금 불안한 면이 많이 있어서 말이죠.

      누추한 곳까지 왕림해주셔서 감사합니다~

댓글을 남겨주세요

Name *

Password *

Link (Your Homepage or Blog)

Comment

Secret