ksh 유닉스쉘스크립트 substr tee 사용예제
"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 |
---|
gawk sed 사용예제 로그파일을 read 후 상호 diff
## 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 |
---|