업무수행 중에 했던 경험을 정리 차원에서 적어 본다.
이 글은 gnuplot을 이용한 통계데이터를 도표로 만드는 예제이다.
이 글은 ftp 자동접속 & 특정 파일 내려받기 & 로그 분석 에 이어서 작성되는 문서이다.
원본 데이터는 다음과 같다.(밑에 부분은 생략)
original data
여기서 필요한 데이터만을 갖고 오도록 한다.
나같은 경우는 2008로 시작하는 데이터 중에서 2, 13, 14, 15번째 column만을 갖어와 DEST_FILE에 저장하도록 하였다.
이렇게 하여 얻어진 데이터는 다음 그림과 같다.(밑에 부분은 생략)
Destination File
이제 여기에서 얻어진 결과를 가지고 통계용 그래프를 gnuplot을 통해 생성한다.
스크립트로 작성하여 보았다.
#!/bin/csh -f
#날짜 설정
set TODAY=`date '+%Y%m%d'`
echo "Today is " $TODAY
set YESTERDAY=`date -d yesterday '+%Y%m%d'`
set WEEKDAY=`date -d yesterday '+%u'`
echo "weekday is " $WEEKDAY
set FRIDAY=`date -s "last Friday" '+%Y%m%d'`
echo "last Friday is " $FRIDAY
set TWODAYSAGO=`date -s "2 days ago" '+%Y%m%d'`
echo "2 days ago is " $TWODAYSAGO
#script를 *.plot으로 저장해서 한 번에 그리기 위해
touch ${YESTERDAY}_coll.plot
echo set terminal x11 >> ${YESTERDAY}_coll.plot
echo set term postscript eps enhanced color solid >> ${YESTERDAY}_coll.plot
echo set key spacing 4 >> ${YESTERDAY}_coll.plot
echo set size 2, 2 >> ${YESTERDAY}_coll.plot
echo set title \"${YESTERDAY}\' coll\" font \"Times-Roman, 40\" >> ${YESTERDAY}_coll.plot
echo set term post >> ${YESTERDAY}_coll.plot
echo set ylabel \"nums of coll\" font \"Times-Roman, 40\" >> ${YESTERDAY}_coll.plot
echo set xlabel \"hours\" font \"Times-Roman, 40\" >> ${YESTERDAY}_coll.plot
#도표에서 밑에 X측에 표시될 라벨을 시간(%H:%M:%S)형태로 표현되도록
echo set xdata time >> ${YESTERDAY}_coll.plot
echo set timefmt \"%H:%M:%S\" >> ${YESTERDAY}_coll.plot
echo set output \"${YESTERDAY}_coll.eps\" >> ${YESTERDAY}_coll.plot
#월요일이면 그 전 주 금요일과 비교하기 위해..(해당 사항이 없으면 스킵하시면 됩니다.)
if($WEEKDAY == 1) then
echo plot \"${DEST_FILE}\" using 1:2 with linespoints lt 1 font \"Times-Roman, 40\", \"./analysis/${FRIDAY}.analysis\" using 1:2 with linespoints lt 2 font \"Times-Roman, 40\" >> ${YESTERDAY}_coll.plot
else
echo plot \"${DEST_FILE}\" using 1:2 with linespoints lt 1, \"./analysis/${TWODAYSAGO}.analysis\" using 1:2 with linespoints lt 2 >> ${YESTERDAY}_coll.plot
endif
echo Making a .plot for $YESTERDAY file..
gnuplot ${YESTERDAY}_coll.plot
#echo Converting eps file to jpg file..
convert ${YESTERDAY}_coll.eps ${YESTERDAY}_coll.jpg
이렇게 해서 얻어진 통계 그래프입니다.
reference : gnuplot tips
'[OS] > Linux' 카테고리의 다른 글
grep, egrep, fgrep, zgrep 사용법 (0) | 2008.10.23 |
---|---|
깨진 mysql 테이블 복구 - 블로그(textcube) 데이터베이스 (0) | 2008.09.24 |
grep, egrep, fgrep 명령어 사용법 (0) | 2008.08.07 |
주기적인 스크립트 실행을 위한 crontab 설정 (0) | 2008.08.05 |
ftp 자동접속 & 특정 파일 내려받기 & 로그 분석 (0) | 2008.08.01 |