check_schedule.sh
Überprüfung ob alle Schedule laufen.
Überprüfung ob alle Schedule laufen.
#!/bin/bash if | "$1" = "--help" || ( "$2" != "mysql" && "$2" != "oracle") ; then echo "Usage: ./check_schedule.sh <appname> <oracle or mysql>" exit elif [ "$2" = oracle ]; then LOGIN=`php /opt/dcx/bin/dcx_dblogin.php --app $1` DRIVER=sqlplus TEMP=/tmp/schedlist TEMP1=/tmp/schedlist1 STATUSDOC=/tmp/sched_status AUSGABE=/tmp/sched_ausgabe echo -n > $STATUSDOC echo -n > $AUSGABE SRUN=`echo -e "set head offnset feedback offnSELECT SCHE_ID from DCX_SCHEDULE where SCHE_WORKFLOW_ID like '%action%' and SCHE_STATUS = 1;" | $DRIVER -S $LOGIN | grep -v ^$ | wc -l ` echo `echo -e "set head offnset feedback offnSELECT SCHE_ID, SCHE_NEXT_EXECUTE from DCX_SCHEDULE where SCHE_WORKFLOW_ID like '%action%' and SCHE_STATUS = 1;" | $DRIVER -S $LOGIN | sed 's/-//g' | sed 's/://g'` | sed 's/ sche/nsche/g' > $TEMP cat $TEMP | sed 's/ /QQQ/g; s/QQQ/ /; s/QQQ//' > $TEMP1 NOWDATE=`date "+%Y%m%d%H%M%S"` DATESAFE=`date -d"+20 mins" "+%Y%m%d%H%M%S"` while read NEXTDATE ; do NEXTDATE2=`echo $NEXTDATE | awk '{print $2}'` COUNT=$(( $DATESAFE-$NEXTDATE2)) if [ "$NEXTDATE2" -gt "$NOWDATE" ] || [ "$COUNT" -lt "2000" ] || ( [ "$COUNT" -gt "5000" ] && [ "$COUNT" -lt "6000" ] ) ; then echo "OK" >> $STATUSDOC else echo "ERROR" >> $STATUSDOC echo `echo $NEXTDATE | awk '{print $1}'` >> $AUSGABE fi done < $TEMP1 STATUS=`cat $STATUSDOC | uniq` elif [ "$2" = mysql ]; then LOGIN=`/usr/local/bin/php /opt/dcx/bin/dcx_dblogin.php --app $1` DRIVER=mysql TEMP=/tmp/schedlist TEMP1=/tmp/schedlist1 SAFETIME=60 STATUSDOC=/tmp/sched_status AUSGABE=/tmp/sched_ausgabe DEBUG=/tmp/debug_sched echo -n > $STATUSDOC echo -n > $AUSGABE echo -n > $DEBUG echo "SELECT SCHE_ID, SCHE_NEXT_EXECUTE from DCX_SCHEDULE where SCHE_WORKFLOW_ID like '%action%' and SCHE_STATUS = 1;" > /tmp/query SRUN=`$DRIVER $LOGIN < /tmp/query_test | sed -e '1d' | awk '{print $1}' | sed 's/-//g' | wc -l` echo `$DRIVER $LOGIN < /tmp/query_test | sed -e '1d' | awk '{print $1,$2,$3}'` | sed 's/ sche/nsche/g' > $TEMP cat $TEMP | sed 's/ /QQQ/g; s/QQQ/ /; s/QQQ/ / ;s/QQQ//' > $TEMP1 NOWDATE=`date "+%Y%m%d%H%M%S"` while read NEXTDATE ; do NEXTDATE2=`echo $NEXTDATE | awk '{print $2,$3}'` RUNTIME=`date -d"$NEXTDATE2 $SAFETIME minutes" "+%Y%m%d%H%M%S"` if [ "$RUNTIME" -gt "$NOWDATE" ]; then echo "OK" >> $STATUSDOC else echo "ERROR" >> $STATUSDOC echo `echo $NEXTDATE | awk '{print $1}'` >> $AUSGABE fi done < $TEMP1 STATUS=`cat $STATUSDOC | uniq` fi if [ "$STATUS" = "OK" ]; then echo "OK - $SRUN from $SRUN SCHEDULE running" elif [ "$STATUS" != "OK" ]; then echo "CRITICAL - SCHEDULE `cat $AUSGABE` not runing" fi
