xferlog anlaysis

2004/10/25 14:25
xferlog 파일을 분석하여서 어떠한 릴리즈를 가장 많이 다운받았는지 리스트를 제공하는 스크립트이다.

(@|SITE|) SITE^TOPTRAFFIC + toptraffic today in SITE (2004/10/25 00:00 - 2004/10/25 05:10)
(@|SITE|) SITE^TOPTRAFFIC ... [1] 1415 megaB ./!. Desperate.Housewives.S01E04.HDTV.XviD-LOL ^_
(@|SITE|) SITE^TOPTRAFFIC ... [2] 1001 megaB ./!. Scaler_USA_XBOX ^_
(@|SITE|) SITE^TOPTRAFFIC ... [3] 776 megaB ./!. Cold.Case.S02E04.HDTV.XviD-LOL ^_
(@|SITE|) SITE^TOPTRAFFIC ... [4] 716 megaB ./!. Steve.Harveys.Big.Time.S02E07.PDTV.XviD-LOL ^_
(@|SITE|) SITE^TOPTRAFFIC ... [5] 712 megaB ./!. Han.Kang.Soo.Ta.Ryeong.E08.KOR.2004.SDTVRiP.XViD-iCEDRAMA ^_

#!/bin/sh

[ -e /glftpd/bin/releasetr.tmp ] && /glftpd/bin/rm -f /glftpd/bin/releasetr.tmp
[ -e /glftpd/bin/releasetr.tmp1 ] && /glftpd/bin/rm -f /glftpd/bin/releasetr.tmp1

/glftpd/bin/grep " o " /glftpd/ftp-data/logs/xferlog | tr -s ' ' | cut -d ' ' -f8-9 > /glftpd/bin/releasetr.tmp

IFS='
'
for line in `/glftpd/bin/cat /glftpd/bin/releasetr.tmp`; do
temp1=`/glftpd/bin/echo $line | /glftpd/bin/cut -d ' ' -f1`
temp2=`/glftpd/bin/echo $line | /glftpd/bin/cut -d ' ' -f2`
temp2=`echo "$temp2" | sed -e "s%/[cC][dD].%%"`
temp2=`echo "$temp2" | sed -e "s%/[dD][iI][sS][cCkK].%%"`
temp2=`echo "$temp2" | sed -e "s%/[sS][aA][mM][pP][lL][eE]%%"`
temp3=`/glftpd/bin/dirname $temp2`
temp4=`/glftpd/bin/basename $temp3`
echo "$temp4" "$temp1" >> /glftpd/bin/releasetr.tmp1
done

/glftpd/bin/cat /glftpd/bin/releasetr.tmp1 | /glftpd/bin/sort > /glftpd/bin/releasetr.tmp
rm -f /glftpd/bin/releasetr.tmp1
relnameold=""
sizeold=0
for line in `/glftpd/bin/cat /glftpd/bin/releasetr.tmp`; do
relname=`/glftpd/bin/echo $line | /glftpd/bin/cut -d ' ' -f1`
size=`/glftpd/bin/echo $line | /glftpd/bin/cut -d ' ' -f2`
if [ "$relnameold" = "$relname" ]; then
sizeold=$(expr "$sizeold" + "$size")
else
#echo "$sizeold $relnameold" >> /glftpd/bin/releasetr.tmp1
#echo "$sizeold $relnameold"
printf "%s %s\n" "$sizeold" "$relnameold" >> /glftpd/bin/releasetr.tmp1
sizeold=0
fi
relnameold="$relname"
done
/glftpd/bin/cat /glftpd/bin/releasetr.tmp1 | /glftpd/bin/sort -gr > /glftpd/bin/releasetr.tmp
echo `date "+%a %b %e %T %Y"` "TOPTR: \"+ toptraffic today in this site (`date "+%Y/%m/%d"` 00:00 - `date "+%Y/%m/%d %H:%M"`)\"" >> /glftpd/ftp-data/logs/glftpd.log
pos=1
for toprel in `/glftpd/bin/cat /glftpd/bin/releasetr.tmp | /glftpd/bin/sort -gr | /glftpd/bin/head -5`; do
size=`/glftpd/bin/echo $toprel | /glftpd/bin/cut -d ' ' -f1`
sizegb=$(expr "$size" / 1024 / 1024)
relname=`/glftpd/bin/echo $toprel | /glftpd/bin/cut -d ' ' -f2`
echo "$size $relname"
echo `date "+%a %b %e %T %Y"` "TOPTR: \"... \[^B$pos^B\] ^B$sizegb^B megaB ./!. ^B$relname^B ^_\"" >> /glftpd/ftp-data/logs/glftpd.log
pos=$[++pos]
done



*CAUTION*

이 쉘프로그램은 서버에 약간의 영향을 줄 수 있으며
xferlog 파일이 너무 클 경우에는 상당한 시간이 걸릴수 있다.
권장하는 것은 logcleaner 를 이용하여
매일 0시에 xferlog 파일을 정리하도록 권한다.
2004/10/25 14:25 2004/10/25 14:25
Posted by 마누
트랙백 0 : 댓글 2 댓글을 작성하시려면 클릭하세요

트랙백 보낼 주소 : http://manuz.com/trackback/54


행복합니다^^
행복합니다. 김형원이 운영하는 블로그 입니다. 제가 쓴 글과 영상들이 있고 웹관련 정보들이 있습니다.

카테고리

전체 (159)
Life Story.. (46)
Love Story.. (2)
Meditation with Life (41)
Web Accesiblity (1)
Writing (2)
Meditation (15)
WEB (11)
IT (31)
Movie Clip (UCC) (8)

글 보관함

달력

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
Total : 300108
Today : 33 Yesterday : 223