Serv-U 14버전 이상의 로그 분석

2014. 6. 9. 00:2399. 정리전 - IT/29. IT 잡동지식

 

 

 

Serv-U가 매니지먼트 콘솔화면으로

버전 업 후 Log 형식이 바뀌면서

"sustat" 라는 분석툴이 무용지물이 된 후

답답한 마음에 제작하여 보았습니다.

허접하지만 소스를 공개 합니다.

관심 있는 분들은 둘러봐 주세요

 

    

 

Serv-u 로그 분석툴

구분

설   명

동작방식 

 java(log파일 분석) + native java(하드디스크 용량 파악)

분석기능

 01. 업로드 순위 (+ 상세리스트)

 02. 다운로드 순위 (+ 상세리스트)

 03. 인기파일 순위 (+ 상세리스트)

 04. 드라이브 별 용량 체크

 05. 블랙리스트 IP export 및  import 형식으로 추출(회원, 비회원 구분)

특이사항

 클론이나 윈도우 스케줄러를 통한 단독 실행 (s.bat)

 (s_year.bat)은 스케줄러에 등록하지 않음 12월 한달동안 자동 실행됨

 년중 1월~11월은 월별 결산

 년중 12월은 년간 결산

 

HiddenStart_4.2.zip<-- 스케줄러 background 실행용

 

 

Serv-u 주요설정

 

 

접속화면 샘플

 

메인화면) 

 

 

 블랙리스트)

 

java 소스 받기 

 

DiskSpace.zip

 

 

 

 

월 단위 정산 batch 파일 구성 (s.bat)

@echo off

cls
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set todayYear=%date:~0,4%
set todayMonth=%date:~0,4%%date:~5,2%
echo :: 오늘의 년월 셋팅 :: %todayMonth%
d:
cd "B:\Ftp Factory\ftp.DonzBox.com_LOG"   <--- Serv-U화면의 Log File Path Name 설정 패스
echo :: 여러 파일을 하나의 파일로 만듬 시작
copy %todayMonth%*.txt "A:\analyzer.DonzBox.com\copy_log\%todayMonth%.log"


echo :: 여러 파일을 하나의 파일로 만듬 종료 :: %todayMonth%.log
cd "A:\analyzer.DonzBox.com\sustat"

sustat "A:\analyzer.DonzBox.com\copy_log\%todayMonth%.log" > "A:\analyzer.DonzBox.com\log_result\%todayMonth%dn.txt"


echo :: 다운로드왕 리포트 출력 :: %todayMonth%dn.txt

sustat "A:\analyzer.DonzBox.com\copy_log\%todayMonth%.log" -u > "A:\analyzer.DonzBox.com\log_result\%todayMonth%up.txt"


echo :: 업로드왕 리포트 출력 :: %todayMonth%up.txt

sustat "A:\analyzer.DonzBox.com\copy_log\%todayMonth%.log" -D 100 > "A:\analyzer.DonzBox.com\log_result\%todayMonth%po.txt"


echo :: 인기파일 리포트 출력 :: %todayMonth%po.txt

copy "A:\analyzer.DonzBox.com\log_result\%todayMonth%po.txt" "E:\z2      [  MOVIE  ]\130.  [  성인영화  ]\%todayMonth%po.txt"


echo :: 인기파일 야동폴더에 카피 :: "E:\z2      [  MOVIE  ]\130.  [  성인영화  ]\%todayMonth%po.txt"

rem type "A:\analyzer.DonzBox.com\log_result\%todayMonth%dn.txt"
rem type "A:\analyzer.DonzBox.com\log_result\%todayMonth%up.txt"
rem type "A:\analyzer.DonzBox.com\log_result\%todayMonth%po.txt"

set todayMonth=
echo :: 변수 지우기 :: todayMonth=

 

cd "D:\My Data\WWW\App Source\DiskSpace\classes"

echo :: DiskSpaceOutput 실행


java com.donzbox.file.action.DiskSpaceOutput

 

rem cd D:\WWW\FTP ROOT
rem del .htaccess*
rem echo :: .htaccess 지우기 :: del D:\WWW\FTP ROOT\.htaccess*

cd "A:\analyzer.DonzBox.com\sustat"

echo "%date:~5,2%"

if %date:~5,2% == 12 (
   echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   echo ::
   echo :: todayYear년 결산 실행
   s_year.bat
)

 

12월용 batch 파일 구성 (s_year.bat)

@echo off

echo ::
set todayYear=%date:~0,4%


echo :: 오늘의 년월 셋팅 :: %todayYear%
d:
cd "A:\analyzer.DonzBox.com\copy_log"


echo :: 여러 파일을 하나의 파일로 만듬 시작
del "A:\analyzer.DonzBox.com\copy_log\%todayYear%.log"
copy %todayYear%*.log "A:\analyzer.DonzBox.com\copy_log\%todayYear%.log"


echo :: 여러 파일을 하나의 파일로 만듬 종료 :: %todayYear%.log
cd "A:\analyzer.DonzBox.com\sustat"
echo ::


echo :: 다운로드왕 리포트 출력 :: %todayYear%dn.txt
del "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%dn.txt"
sustat "A:\analyzer.DonzBox.com\copy_log\%todayYear%.log" > "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%dn.txt"


echo :: 다운로드왕 리포트 출력 완료
echo ::


echo :: 업로드왕 리포트 출력 :: %todayYear%up.txt
del "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%up.txt"
sustat "A:\analyzer.DonzBox.com\copy_log\%todayYear%.log" -u > "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%up.txt"


echo :: 업로드왕 리포트 출력 완료
echo ::


echo :: 인기파일 리포트 출력 :: %todayYear%po.txt
del "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%po.txt"
sustat "A:\analyzer.DonzBox.com\copy_log\%todayYear%.log" -D 50 > "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%po.txt"


echo :: 인기파일 리포트 출력 완료
echo ::

copy "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%po.txt" "E:\z2      [  MOVIE  ]\130.  [  성인영화  ]\%todayYear%po.txt"


echo :: 인기파일 야동폴더에 카피 :: "E:\z2      [  MOVIE  ]\130.  [  성인영화  ]\%todayYear%po.txt"

rem type "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%dn.txt"
rem type "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%up.txt"
rem type "A:\analyzer.DonzBox.com\log_result\each_year\%todayYear%po.txt"

set todayYear=
echo :: 변수 지우기 :: todayYear=

cd "D:\My Data\WWW\App Source\DiskSpace\classes"

echo :: DiskSpaceOutput 실행


java com.donzbox.file.action.DiskSpaceOutput

 

cd "A:\analyzer.DonzBox.com\sustat"