目的:pjmrfile 中的内容是:
SSUNSYDDB14#PAUSU_ALS_CD_XCOM_MV_FILE_DDCW
AT 0300 UNTIL 2000 +1 DAYS
OPENS SSUNSYDDB14#"/var/opt/transfer/cache/cards_stmts/ecsplus/DDCW*.txt"
SSUNSYDDB14#PAUSU_ALS_CD_XCOM_MV_FILE_DSM
AT 0500 +1 DAYS UNTIL 2000 +1 DAYS
OPENS SSUNSYDDB14#"/var/opt/transfer/cache/cards_stmts/ecsplus/DSM*.txt"
report中的内容是:
PAUSU_ALS_CD_XCOM_MV_FILE_DDCW 0300 2000
PAUSU_ALS_CD_XCOM_MV_FILE_DSM 0500 2000
目的是根据report 中的JOB NAME, 来检查pjmrfile 对应的起始和结束时间和report中是否一样。
还是先看以下的代码吧:
#!/bin/sh
# This is for Tivoli job name and shell name checking
#Author:
# Date : Dec 05 2009
# First check for job name
awk '{print $1}' report > jobname
cat jobname | while read line;
do
NAME=$line
echo "$NAME"
# Check the realated job count /* 检查PJMR 文件中含有多少个目标JOB
awk '/'"$NAME"'/{print}' pjmrfile > resultfile
RF=resultfile
num=`cat $RF |wc -l`
if [ $num -eq 1 ]
then echo "OK!"
else echo " Job missing or more than one job in pjmrfile!"
fi
# Print the time of pjmrfile according the jobname
awk '/'"$NAME"'/{print (NR+1)}' pjmrfile > ROW /打印出目标JOB的下一行号
row=ROW
RW=`cat $row`
echo "$RW"
sed -n "$RW"p pjmrfile > PJMR / 打印出所为下一行的内容
# sed 's/^AT /([0-9]*/).*UNTIL /([0-9]*/).*//1 /2/' PJMR > timeframe /这种方法当文件开头或中间有多空格时就报错!
cat PJMR | sed "s//+1 DAYS//g" |sed "s/[^0-9]*//g" > timeframe
cut -c 1-4 timeframe > ST
cut -c 5-8 timeframe > ET
# The following will check the time between report and pjmrfile:
awk '/'"$NAME"'/{print}' report > RP /检查对应的JOB 的第二,三个域的时间
awk '{print $2}' RP > st
awk '{print $3}' RP > et
ST2=ST
st2=st
ET2=ET
et2=et
ST1=`cat $ST2`
ET1=`cat $ET2`
st1=`cat $st2`
et1=`cat $et2`
# echo "$ST1"
# echo "$ET1"
# echo "$st1"
# echo "$et1"
if [ "$ST1" -eq "$st1" ]
then echo "The start time is OK!"
else echo "ERROR!"
fi
if [ "$ET1" -eq "$et1" ]
then echo "The end time is OK!"
else echo "ERROR!"
fi
done