Shell script

nmon.sh

efrit 2010. 3. 9. 14:36

###############################
#                                                           #
#     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