4

Hello Every one I have script that call other script with while loop I need to know how to calculate time taken by each loop like :

Starting NodeManager...
NodeManager Started
Elapsed time: 00:00:10

Starting AdminServer...
AdminServer Started
Elapsed time: 00:01:10

here is the script

#!/bin/bash
set -e
clear

TFILE=starting.log
#--------------------------------------------------------------------------------
Check_Status_NM ()
{
tail -F ${TFILE} | while read LOGLINE
do
    if [[ "${LOGLINE}" == *"Secure socket listener started on port"* ]] 
    then
    pkill -P $$ tail
    break
    elif [[ "${LOGLINE}" == *"Address already in use"*  ]]; then
    pkill -P $$ tail
    echo -e "Cannot Start Server\nSee starting.log for more info "
    exit 1
    fi
done
}
#----------------------------------------------------------------
Check_Status ()
{
tail -F ${TFILE} | while read LOGLINE
do
    if [[ "${LOGLINE}" == *"The Network Adapter could not establish the connection"* ]] ; then
    echo -e "\e[5m\e[93mWARNING\e[0m Could not establish the connection\n\e[91mCheck Connection to Database\e[0m\n"
    elif [[ "${LOGLINE}" == *"<Server started in RUNNING mode>"* ]] 
    then
    pkill -P $$ tail && cat /dev/null > ${TFILE}
  sleep 1
    break

    elif [[ "${LOGLINE}" == *"<Server state changed to FORCE_SHUTTING_DOWN>"* ]] || [[ "${LOGLINE}" == *"Address already in use"*  ]]; then
    pkill -P $$ tail
    echo -e "\e[91mCannot Start Server\e[0m\nSee starting.log for more info "
    exit 1
    fi
done
}
export JAVA_OPTIONS="-Dweblogic.management.username=weblogic -Dweblogic.management.password=oracle11g"
#-------Start NodeManager-------------------------------------------------------
echo -e "Starting NodeManager..."
nohup "$WLS_HOME"/server/bin/startNodeManager.sh  > ${TFILE} 2>&1 &
Check_Status_NM
echo -e "NodeManager \e[92mStarted\e[0m\n"
#--------------------------Start WebLogic Domain------------------------------------------------
echo -e "Starting AdminServer..." 
nohup "$DOMAIN_HOME"/bin/setDomainEnv.sh > ${TFILE} 2>&1 &
nohup "$DOMAIN_HOME"/bin/startWebLogic.sh > ${TFILE} 2>&1 &
Check_Status
echo -e "AdminServer \e[92mStarted\e[0m\n"
#----------- Start FORMS------------------------------
echo "Starting Forms Server..."
nohup "$DOMAIN_HOME"/bin/startManagedWebLogic.sh WLS_FORMS t3://$(hostname):7001 > ${TFILE} 2>&1 &
Check_Status
echo "Forms Server \e[92mStarted\e[0m\n"
#----------- Start Reports------------------------------
echo -e "Starting Reports Server..."
nohup "$DOMAIN_HOME"/bin/startManagedWebLogic.sh WLS_REPORTS t3://$(hostname):7001 > ${TFILE} 2>&1 &
Check_Status
echo -e "Reports Server \e[92mStarted\e[0m\n"
#---------------------Start anything remaining using OPMN------------------------
opmnctl startall ; opmnctl status ; emctl start agent
7

Bash has a built in "timer". Set the SECONDS variable to 0 (zero) when you want to start timing, and read its value to get the number of seconds elapsed since it was last reset.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.