::: ETC :::

하루전날을 구하는 Shell 쉘

호딩이 2009. 8. 20. 08:34


#!/bin/sh
# -----------------------------------------------------------------------------
# Start Script for Service Status Statistic Info
# -----------------------------------------------------------------------------
get_the_day_before()
{
yyyy=`date +%Y`
mm=`date +%m`
dd=`date +%d`
val=$1
dd=`expr $dd - $val`
last=`cal $mm $yyyy | awk 'NF != 0{ last = $0 }; END{ print last }' | awk '{ print $NF }'`
while [ $dd -lt 1 ]
do
        mm=`expr $mm - 1`
   if [ $mm -lt 1 ]; then
    mm=12
    yyyy=`expr $yyyy - 1`
   fi
   last=`cal $mm $yyyy | awk 'NF != 0{ last = $0 }; END{ print last }' | awk '{ print $NF }'`
   dd=`expr $last + $dd`
       done
   while [ $dd -gt $last ]
   do
       dd=`expr $dd - $last`
       mm=`expr $mm + 1`
       if [ $mm -gt 12 ]; then
           mm=1
           yyyy=`expr $yyyy + 1`
       fi

       last=`cal $mm $yyyy | awk 'NF != 0{ last = $0 }; END{ print last }' | awk '{ print $NF }'`
   done
   mm=`echo $mm | awk '{printf("%02d",$1)}'`
   dd=`echo $dd | awk '{printf("%02d",$1)}'`
   echo $yyyy$mm$dd
}

DAY0=`date  +%Y%m%d`
DAY1=`get_the_day_before 1`
#DAY1=$1

FILE_PATH=/data/packager/statlog/tlolog/log/onm/$DAY1
tcnt=`cat $FILE_PATH/* | wc -l`
/opt/OV/bin/OpC/opcmsg a=Check_Simulator o=script s=critical msg_text="Have a Nice Day! -openview TEST- $tcnt"


참유용하다~
전에는 하루전날 파일로 떨궈놓구 그거 불러다가 썼는데 ㅠㅠ 바보인가봐
하여튼 참 편함

사용방법은
DAY1=`get_the_day_before 1`   # 여그 숫자에 몇일전으로 빽할껀지!!

흠 나중에 하루 더하는것으로 개조시켜봐야지~