2010. 9. 8. 18:17

PowerShell을 이용하여 IIS 로그파일 경로를 지정하시면 송/수신된 데이터 량을 확인 할 수 있습니다.
여기서 약간 더 변형을 한다면, IIS의 내용중 로그 디렉토리에 대한 정보를 확인하여 각 사용자 별로 일일 송/수신 데이터 량을 확인 할 수도 있습니다.

우선 소스부터 보시죠..

# 로그 파일 경로를 입력 받습니다.
Param (
  [String] $Path
)
# 필요한 변수들을 미리 지정 합니다.
[INT]$RECV_TOTAL="0"
[INT]$SEND_TOTAL="0"
[INT]$CS_NUM=0;
[INT]$SC_NUM=0;
 
$KB=1024
$MB=1024*1024
$GB=1024*1024*1024
get-content $Path | %{
    #Pattern Check
    if ( $_ | Select-String -Pattern "#Fields" ) {
        # Fields 값에 대한 마이너스 값 처리.
        [INT]$CNT=-1;
        foreach ($element in $_.Split(' '))
        {
           if ( $element -eq "sc-bytes" ){
             $SC_NUM=$CNT;
           }elseif ( $element -eq "cs-bytes" ) {
             $CS_NUM=$CNT;
           }
           $CNT+=1;
        }
     }
     elseif ( $_ | Select-String -Pattern "^[^#]" )
     {
# 실제 송/수신된 값을 Split 명령을 통해 저장합니다.
 [int]$SEND_BYTE=$_.Split(' ')[$SC_NUM];
 [int]$RECV_BYTE=$_.Split(' ')[$CS_NUM];
 [int]$RECV_TOTAL+=$RECV_BYTE;
 [int]$SEND_TOTAL+=$SEND_BYTE;
    }
}
If ( $RECV_TOTAL -gt $GB ){
 $RECV_TOTAL = $RECV_TOTAL / $GB
 Write-Host "Total  In : $RECV_TOTAL GByte"
} elseif ( $RECV_TOTAL -gt $MB){
        $RECV_TOTAL = $RECV_TOTAL / $MB
 Write-Host "Total  In : $RECV_TOTAL MByte"
}elseif ( $RECV_TOTAL -gt  $KB){
 $RECV_TOTAL = $RECV_TOTAL / $KB
 Write-Host "Total  In : $RECV_TOTAL KByte"
}else{
 Write-Host "Total  In : $RECV_TOTAL Byte"
}
If ( $SEND_TOTAL -gt $GB ){
 $SEND_TOTAL = $SEND_TOTAL / $GB
 Write-Host "Total Out : $SEND_TOTAL GByte"
} elseif ( $SEND_TOTAL -gt $MB){
        $SEND_TOTAL = $SEND_TOTAL / $MB
 Write-Host "Total Out : $SEND_TOTAL MByte"
}elseif ( $SEND_TOTAL -gt  $KB){
 $SEND_TOTAL = $SEND_TOTAL / $KB
 Write-Host "Total Out : $SEND_TOTAL KByte"
}else{
 Write-Host "Total Out : $SEND_TOTAL Byte"
}

우선 간단한 소스이니 얼마든지 변형이 가능 합니다.
추가적으로 더 나간다면, 여러대의 서버를 관리하는 관리자의 경우 각 서버들에 대한 FTP 접속 계정을 만들고 FTP로 접속하여 각 로그 파일들을 다운로드 받은 뒤 해당 파일에 대한 체크 후 자동 삭제 하는 과정을 통해 모든 IIS 서버에 대한 각 계정별 트래픽 값을 확인 할 수도 있습니다.

그냥 단순히 참고만.. ^^.
Posted by 마성민
:
BLOG main image
Windows Server를 공부 하는 사람들의 팀블로그 by 마성민

카테고리

분류 전체보기 (76)
Windows (2)
Powershell (56)
AD (0)
Exchange (6)
System Center (9)
IIS (0)
SQL (3)
Sharepoint (0)

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

Total :
Today : Yesterday :