#! /bin/bash
# *********************************************************************
# tl_check
# - dbchk    - napi kulonbsegek kuldese
# - tart_akt - tartozas aktualizalas
# *********************************************************************

# Beallitasok a tl_check.cfg-ben csak, itt semmi!

# ****** 'ne piszkald' dolgok ezek: *****

. /usr/share/textlib/exe/tl_setpar
IDO=`date "+%Y-%m-%d %H:%M"`
CHK_LOG=/var/log/textlib$ext/tl_check.log
echo -e "\n***** tl_check $ext - $IDO *************" >> $CHK_LOG
echo "tl_check $ext - $IDO"

# elszallas eseten hibakezeles
trapfunc()
{
  echo "!!! Abnormalis tl_check veg: $1" >> $CHK_LOG
  echo "Abnormalis tl_check veg: $1, tl_check.log megnezni!" | mail -s "!tl_check hiba!" root
}

# valtozok
MA=`date "+%Y-%m-%d-%H%M"`
DBCHK_PAR="//minden"
DBCHK_LOG=/var/log/textlib$ext/dbchk.log
DBCHK_LOG_PREV=/var/log/textlib$ext/dbchk.log.prev
DBCHK_LOG_MA=/var/log/textlib$ext/dbchk.${MA}.log
TART_LOG=/var/log/textlib$ext/tart_akt.log
TART_LOG_MA=/var/log/textlib$ext/tart_akt.${MA}.log
KULD_FILE=/var/log/textlib$ext/tl_check.${MA}.log
DBCHK_MASK="^***** 20[0-9]{2}-|ERR[0-9]{3}"
TARTAKT_MASK="sszesen"
DBCHK_HIBAK="sszesen:.*olvasott"
SEDCHG="s/^< /volt: /ig;s/^> /lett: /ig"
CHKCFGFILE="/usr/share/textlib/exe/tl_check$ext.cfg"
TESZT=0
ITDIAG=0
DBCHK=1
TARTAKT=1
TLMENT=1

# START
rm -f $KULD_FILE

# cfg betoltese
if [ ! -f $CHKCFGFILE ]; then
    echo "Nincs $CHKCFGFILE" >> $CHK_LOG
    echo "Nincs $CHKCFGFILE" | mail -s "Napi ellenorzes hiba ($CHKCFGFILE)" root
    exit 0
fi
. $CHKCFGFILE

echo "***** tl_check $ext - $IDO" > $KULD_FILE

trap "trapfunc int" INT
trap "trapfunc term" TERM
trap "trapfunc exit" EXIT

# Varakozas naplo/backup vegere
date >> $CHK_LOG
ls -l $PIDPATH/*.pid >> $CHK_LOG
echo "Varakozas naplo/backup vegere" >> $CHK_LOG
WaitPIDClose $NAPLOPID  g-naplo.exe
NRET=$?
WaitPIDClose $BACKUPPID tl_backup
BRET=$?
date >> $CHK_LOG
if [ "$NRET" == "0" -o "$BRET" == "0" ]; then
   echo "Naplo/backup fut: $NRET/$BRET" >> $CHK_LOG
   ls -l $PIDPATH/*.pid >> $CHK_LOG
   exit 1
fi

echo "tl_check, teszt_mod: $TESZT" >> $CHK_LOG
echo "Feldolgozva: $CHKCFGFILE" >> $CHK_LOG
echo "Email-to: $EMAIL_TO; CC:$EMAIL_CC" >> $CHK_LOG

# it_diag
if [ "$ITDIAG" != "0" ]; then
  echo "--Jon($ITDIAG): g-itdiag.exe $par /a" >> $CHK_LOG
  /usr/share/textlib/exe/g-itdiag.exe $par /a >> $CHK_LOG
  ITDIAG_RET=$?
  if [ "$ITDIAG_RET" != "0" ]; then
     echo "!ItDiag problema:$ITDIAG_RET" >> $CHK_LOG
  else
     echo "!OK" >> $CHK_LOG
  fi
else
  echo -e "--Nem jon($ITDIAG): g-itdiag.exe $par" >> $CHK_LOG
  ITDIAG_RET=0
fi

# dbchk
if [ "$DBCHK" != "0" ]; then
  echo -e "--Jon($DBCHK): g-dbchk.exe $par $DBCHK_PAR /Aigen /L${DBCHK_LOG_MA}" >> $CHK_LOG
  /usr/share/textlib/exe/g-dbchk.exe $par $DBCHK_PAR $TLCHECKCH /Aigen /L${DBCHK_LOG_MA} >> $CHK_LOG
  DBCHK_RET=$?
  cat ${DBCHK_LOG_MA} >> ${DBCHK_LOG}
  echo "Kesz: dbchk = $DBCHK_RET" >> $CHK_LOG
  grep -E "$DBCHK_HIBAK" $DBCHK_LOG_MA >> $CHK_LOG
else
  echo -e "--Nem jon($DBCHK): g-dbchk.exe $par" >> $CHK_LOG
  DBCHK_RET=0
fi

TART_RET=nemfutott
if [ "$DBCHK_RET" == "0" -a "$TARTAKT" != "0" ]; then
  rm -rf $TART_LOG_MA
  echo -e "--Jon($TARTAKT): g-tartakt.exe $par /Aigen /L${TART_LOG_MA}" >> $CHK_LOG
  /usr/share/textlib/exe/g-tartakt.exe $par $TLCHECKCH /Aigen /L${TART_LOG_MA} >> $CHK_LOG
  TART_RET=$?
  cat ${TART_LOG_MA} >> ${TART_LOG}
  echo "Kesz: tartakt = $TART_RET" >> $CHK_LOG
  grep -E "$DBCHK_HIBAK" $TART_LOG_MA >> $CHK_LOG
else
  echo -e "--Nem jon($TARTAKT,$DBCHK_RET): g-tartakt.exe $par" >> $CHK_LOG
  TARTAKT_RET=0
fi

# Szoveg osszerakas
if [ "$DBCHK" != "0" ]; then
  if [ -f $DBCHK_LOG_PREV ]; then
    echo -e "-- DBCHK kulonbsegek elozo futashoz kepest" >> $KULD_FILE
    diff $DBCHK_LOG_PREV $DBCHK_LOG_MA | grep -E "$DBCHK_MASK" | sed -r "$SEDCHG" >> $KULD_FILE
    echo -e "\n-- Jelenlegi allapot:" >> $KULD_FILE
    grep -E "$DBCHK_HIBAK" $DBCHK_LOG_MA >> $KULD_FILE
    echo "DBCHK kulonbsegek kiirva: $KULD_FILE" >> $CHK_LOG
  else
    echo -e "-- DBCHK teljes hibalista - nem talaltam elozo log-ot\n" >> $KULD_FILE
    cat $DBCHK_LOG_MA >> $KULD_FILE
    echo "-- DBCHK teljes lista kiirva: $KULD_FILE" >> $CHK_LOG
  fi
  mv $DBCHK_LOG_MA $DBCHK_LOG_PREV
fi
# tart_akt log is legyen kuldve
if [ "$TARTAKT" != "0" ]; then
  echo -e "\n--Tart_akt log:" >> $KULD_FILE
  grep "$TARTAKT_MASK" $TART_LOG_MA >> $KULD_FILE
fi 

# itdiag eredmeny kuldese
if [ "$ITDIAG" != "0" ]; then
  echo -e "\n--ItDiag eredmeny:$ITDIAG_RET" >> $KULD_FILE
fi

# mentsunk is utana. Ha van TLMENT && futott dbchk|tartakt && OK volt minden
if [ "$TLMENT" != "0" ]; then
 if [ "$DBCHK" != "0" -o "$TARTAKT" != "0" ]; then
  if [ "$DBCHK_RET"=="0" -a "TART_RET"=="0" -a "$TESZT" == "0" ]; then
   echo "-- Adatbazis mentes indul az ellenorzesek utan" >> $KULD_FILE
   echo "tl_ment $par indul" >> $CHK_LOG
   tl_ment $par >> $KULD_FILE
  else
   echo "-- Adatbazis mentes NEM indul:$DBCHK_RET,$TART_RET,$TESZT" >> $KULD_FILE
  fi
 else
   echo "-- Adatbazis mentes NEM kell: nem futott DBCHK,TARTAKT " >> $KULD_FILE
 fi
else
   echo "-- Adatbazis mentes NEM kell, cfg.TLMENT=$TLMENT " >> $KULD_FILE
fi

# Elkuldes, ha kell
if [ "$EMAIL_TO" != "" ]; then
  if [ "$EMAIL_CC" != "" ]; then
      CCPAR="-c $EMAIL_CC"
  fi
  cat $KULD_FILE | mail -s "Napi ellenorzes" $CCPAR ${EMAIL_TO}
  echo "-- TL_CHECK eredmeny: $KULD_FILE. Elkuldve" >> $CHK_LOG
else
  echo "-- TL_CHECK eredmeny: $KULD_FILE" >> $CHK_LOG
fi

# kitorles    TESZT
rm -f $TART_LOG_MA 
# rm -f $KULD_FILE

echo "tl_check kesz" >> $CHK_LOG
trap - INT TERM EXIT
