#!/bin/sh

echo "#############################################################"
echo "#"
echo "# exruntimes.sh.sms"
echo "#"
echo "# Creates a file that contains start and stop times "
echo "# for all jobs run on the IBM-SP."
echo "#"
echo "# HISTORY:"
echo "#   31 Aug 1998    Brent A. Gordon   -- Implemented script."
echo "#   03 Jun 1999    Brent A. Gordon   -- Converted to IBM-SP."
echo "#"
echo "#############################################################"

set -xa

hostname

cd $DATA
#mach1=smsfmt1
#mach2=smsfmt2
mach1=smsgb3
mach2=smsgb3
cur_hour=`date -u +%H`

#
# Get most recent sms log information from active SMS machine
#
ping -c 3 ${SMSNODE}
pingerr=$?
if [ $pingerr -eq 0 ]
then
  scp nwprod@${SMSNODE}:/sms/rundir/sms.log $DATA/sms.log
  #
  #  The following if test is to account for the 18 UTC GDAS which
  #  spans two GMT days
  #
  new_fsize=`ls -l $DATA/sms.log | awk '{print $5}'`
  old_fsize=`cat $com/old_smslog.size`
  if [ $old_fsize -gt $new_fsize -o $cur_hour -le 2 ] ; then
    scp nwprod@${SMSNODE}:/sms/rundir/log/smslog1 $DATA/smslog1
    log1_fsize=`cat $DATA/smslog1 | wc -l`
    let tnum=log1_fsize/2
    tail -$tnum $DATA/smslog1 | grep gdas18 > $DATA/tmp1
    cat $DATA/tmp1 $DATA/sms.log > $DATA/tmp
    mv $DATA/tmp $DATA/sms.log
  fi
  echo $new_fsize > $com/old_smslog.size
  #
  # END 18 UTC GDAS LOGIC
  #
else
  ping -c 3 ${mach2}
  pingerr=$?
  if [ $pingerr -eq 0 ]
  then
    scp nwprod@${mach2}:/sms/rundir/sms.log $DATA/sms.log
    #
    #  The following if test is to account for the 18 UTC GDAS which
    #  spans two GMT days
    #
    new_fsize=`ls -l $DATA/sms.log | awk '{print $5}'`
    old_fsize=`cat $com/old_smslog.size`
    if [ $old_fsize -gt $new_fsize -o $cur_hour -le 2 ] ; then
      scp nwprod@${SMSNODE}:/sms/rundir/log/smslog1 $DATA/smslog1
      log1_fsize=`cat $DATA/smslog1 | wc -l`
      let tnum=log1_fsize/2
      tail -$tnum $DATA/smslog1 | grep gdas18 > $DATA/tmp1
      cat $DATA/tmp1 $DATA/sms.log > $DATA/tmp
      mv $DATA/tmp $DATA/sms.log
    fi
    echo $new_fsize > $com/old_smslog.size
    #
    # END 18 UTC GDAS LOGIC
    #
  else
    postmsg "COULD NOT REACH EITER SMS MACHINES. JOB ENDING NOW."
    exit
  fi
fi
smslog=$DATA/sms.log

#
# Get a cycle time on the end of the RSAS job names
#
/nwprod/ush/runstats_rsas.pl $smslog $DATA/sms.log.new
mv $DATA/sms.log.new $smslog

grep LOG: $smslog | grep complete: | grep -v getosostat | grep -v ingest > complete.dat
grep LOG: $smslog | grep ruc | grep set:/prod >> complete.dat
grep LOG: $smslog | grep active: | grep -v getosostat | grep -v ingest > active.dat
grep ERR: $smslog | grep aborted: | grep -v getosostat | grep -v ingest > aborted.dat

if test -e $com/complete.old
then
  diff $com/complete.old complete.dat | grep ">" > complete.new
else
  cat complete.dat | awk '{print "> "$0}'  > complete.new
fi
if test -e $com/active.old
then
  diff $com/active.old active.dat | grep ">" > active.new
else
  cat active.dat | awk '{print "> "$0}'  > active.new
fi
if test -e $com/aborted.old
then
  diff $com/aborted.old aborted.dat | grep ">" > aborted.new
else
  cat aborted.dat | awk '{print "> "$0}'  > aborted.new
fi
cp complete.dat $com/complete.old
cp active.dat $com/active.old
cp aborted.dat $com/aborted.old

##################################################################
# Now run the perl scripts runstats.pl to calculate daily, weekly,
# monthly, and total time statistics of runtimes
#
/nwprod/ush/runstats.pl
##################################################################

##################################################################
# Now run the perl script runstats2html.pl to make html documents
# for the web.
/nwprod/ush/runstats2html.pl
##################################################################

##################################################################
# Now run the perl script runstats2html_table.pl to make table 
# version of the html documents for the web.
/nwprod/ush/runstats2html_table.pl
##################################################################

##################################################################
# RSYNC the results to rzdm
#
# rsync -v -e ssh /com/logs/runtime/ave30/prdst_* nwprod@rzdm:/home/people/nco/www/htdocs/pmb/nwprod/prodstat_new/
# rsync -v -e ssh /com/logs/runtime/ave30/production_status.html nwprod@rzdm:/home/people/nco/www/htdocs/pmb/nwprod/prodstat/


##################################################################
# RSYNC the results to WOC
#
if [ $SENDWEB = "YES" ]; then
    #rsync -v -e ssh /com/logs/runtime/ave30/prdst_* mirrorncep@140.90.200.29:/sync/www.ncep.noaa.gov/gov/noaa/ncep/nco.www/publish/http/pmb/nwprod/prodstat_new/
    rsync -v --recursive --links --perms --rsh=/usr/bin/ssh --stats --delete --whole-file --update /com/logs/runtime/ave30/prdst_* nwprod@rzdm.ncep.noaa.gov:/home/www/nco/htdocs/pmb/nwprod/prodstat_new/
    #rsync -v -e ssh /com/logs/runtime/ave30/production_status.html mirrorncep@140.90.200.29:/sync/www.ncep.noaa.gov/gov/noaa/ncep/nco.www/publish/http/pmb/nwprod/prodstat/
    rsync -v --recursive --links --perms --rsh=/usr/bin/ssh --stats --delete --whole-file --update /com/logs/runtime/ave30/production_status.html nwprod@rzdm.ncep.noaa.gov:/home/www/nco/htdocs/pmb/nwprod/prodstat/
fi
exit

############## END OF SCRIPT #######################