프리랜서 웹수리천사

반응형

"ksh 유닉스쉘스크립트 substr tee 사용예제"


#!/bin/ksh

fn=almcnt

touch $fn.txt

rm $fn.txt

day=1

endday=24

mon="201611"

backdir="/home4/sysmsg_bkup/MSG"


while [ $day -le $endday ]

do


if [ $day -le 9 ]

then

day=0"$day"

fi


gzip -d $backdir/$mon"$day"*/0[0-9].*.gz

gzip -d $backdir/$mon"$day"*/[1-2]?.*.gz

echo "uncompress $day"


ftime=0

 while [ $ftime -le 23 ]

 do


if [ $ftime -le 9 ]

then

ftime=0"$ftime"

fi


nawk '{

if( $1 ~/FAULTS/ ) {date=$2; flag=off}

if( $1 ~/\*/ ) {

   sts=$1

   code=$2

   flag=substr($2,1,1)

   }

if( $1=="LOC" ) loc=$3

if( $1=="INF" ) inf=substr($0,14,100)

if( $1=="COMPLETED" && flag=="A" )  {

   printf("%s %-3s %s %-60s %s\n",date,sts,code,loc,inf)

   date=""

   sts=""

   code=""

   loc=""

   inf=""

   flag=NO

   }

}' $backdir/$mon"$day"*/$ftime.MSG |tee -a $fn.txt


ftime=`expr $ftime + 1`


 done


gzip $backdir/$mon"$day"*/*.MSG

echo "compress $day"

day=`expr $day + 1`


sleep 1

done



반응형

'unix_script' 카테고리의 다른 글

gawk sed 사용예제 로그파일을 read 후 상호 diff  (0) 2016.10.24
신일 리모컨 이동식 에어컨 SMA-D850SI [4개월]프롬바이오 관절연골엔 보스웰리아(850mg*30정*8박스), 단품, 단품

반응형

## unix shell programing gawk sed 사용예제 로그파일을 read 후 상호 diff

## fault diff VER 1.0 by SJH

#\* \[ \] 와일드카드 문자 앞에 \사용 또는 bash -f 서브쉘에서 사용

#!/bin/ksh


if [ $# -eq 0 ] 

then

echo "로그 파일들 중 2개 로그 이상 선택하시오!"

ls -m *log|sed 's/,//g'

echo "사용법1 : faultdiff.sh log_file1 log_fie2 log_file3 ..."

echo "사용법2 : faultdiff.sh 04*.faultlog"

echo "사용법3 : faultdiff.sh 041[1-5].faultlog"

exit

fi


rm fault.list faultp.list fault.diff > /dev/null 2>&1

rm *.ctmp > /dev/null 2>&1

echo "file list =" `echo $*`


awk '{

if (substr($1,1,1)=="H") print $1

}' $* | sort -u > fault.list


sed 's/SDT=/SDT /g' $* | awk '{

if( $4 ~/DIS-FAULT/) date=substr($5,1,4)

if(substr($1,1,1)=="H") {

printf("%s %s %s\n",date,$1,$2) 

}

}' > allfault.tmp

awk '{print $1}' allfault.tmp | sort -u > date.tmp


while read DATE

do

echo $DATE > $DATE.ctmp

echo "====" >> $DATE.ctmp


while read LIST

do

gawk -v date=$DATE -v list=$LIST ' BEGIN {

cnt=0 } {

if($1==date && $2==list) cnt=$3

} END {

###검증{printf("%s %s\n",list,cnt); cnt=0}

if (cnt=="0") {printf("[7m%s[0m\n",cnt); cnt=0}

else   {printf("%s \n",cnt); cnt=0}

}' allfault.tmp >> $DATE.ctmp

done < fault.list


done < date.tmp


echo fault > faultp.list

echo "====" >> faultp.list

cat fault.list >> faultp.list

paste faultp.list *.ctmp > fault.diff

rm *.ctmp date.tmp allfault.tmp fault*.list

cat fault.diff



반응형

'unix_script' 카테고리의 다른 글

ksh 유닉스쉘스크립트 substr tee 사용예제  (0) 2016.11.04
신일 리모컨 이동식 에어컨 SMA-D850SI [4개월]프롬바이오 관절연골엔 보스웰리아(850mg*30정*8박스), 단품, 단품