nmon.sh
###############################
# #
# nmon 실행 스크립트 #
# #
# 2010. 3. 9. JY #
# #
###############################
#!/bin/sh
host=`hostname`
today=`date +%d`
month=`date +%m`
YEAR=`date +%Y`
year=`date +%y`
LASTMONTH=$((`echo $YEAR$month` - 1))
lastmonth=$((`echo $year$month` - 1))
LASTYEAR=$(($YEAR - 1))
lastyear=`echo $LASTYEAR|cut -c 3-`
bindir="/nmon/bin"
datadir="/nmon/data"
###### 어제 만든 nmon 파일 복사 ######
nmon_file=`echo $host*.nmon`
cd $bindir
if [ -f $nmon_file ]
then
cp $nmon_file $datadir
rm -f $nmon_file
fi
###### 매월 1일 지난달 파일 압축 ######
if [ 01 -eq $today ]
then
cd $datadir
## 1월을 빼고 나머지달에 지난달 파일 묶기
if [ 01 -ne $month ]
then
## 지난달 nmon 파일 묶어
tar -cf $LASTMONTH.tar `ls *"_"$lastmonth*"_"*`
## 1월엔 작년 12월로 묶기
else
tar -cf $LASTYEAR"12".tar `ls *"_"$lastyear"12"`
fi
gzip *.tar
## 만약 압축파일 생성 안되면 파일 삭제 안함
if [ -f $LASTMONTH.tar.gz ]
then
rm -f `ls *"_"$lastmonth*"_"*`
fi
## 6개월 지난 파일 삭제
find $datidir -name "*.gz" -mtime +180 -exec rm -f {} \;
fi
###### nmon 실행 ######
cd $bindir
## nmon 실행중이면 중지
if [ 0 -ne `ps -ef|grep nmon|grep -v grep|wc -l` ]
then
ps -ef|grep nmon|grep -v grep|grep -v nmon.sh|awk '{print "kill -9 "$2}'|sh -v
fi
sleep 1
## 60초 마다 한번씩 1440번(하루)
$bindir/nmon -ft -s 60 -c 1440