Light In The Box RFID Tags

Spa Guts

Using Macros

The Kustom Krust font is Hominis and can be used for various applications

Hominis Font Download

 

 

N2A Cards

Monitoring via REST api

Passive Alias Extract



<?php
/**
* Twenty Fourteen functions and definitions
*
* Set up the theme and provides some helper functions, which are used in the  theme as custom template tags.

*  Others are attached to action and filter hooks in WordPress to change core functionality.
*
* When using a child theme you can override certain functions (those wrapped
* in a function_exists() call) by defining them first in your child theme's
* functions.php file. The child theme's functions.php file is included before
* the parent theme's file, so the child theme functions would be used.
*
* @link https://codex.wordpress.org/Theme_Development
* @link https://codex.wordpress.org/Child_Themes
*
* Functions that are not pluggable (not wrapped in function_exists()) are
* instead attached to a filter or action hook.
*
* For more information on hooks, actions, and filters,
* @link https://codex.wordpress.org/Plugin_API
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/

/**
* Set up the content width value based on the theme's design.
*
* @see twentyfourteen_content_width()
*
* @since Twenty Fourteen 1.0
*/
if ( ! isset( $content_width ) ) {
$content_width = 474;
}

/**
* Twenty Fourteen only works in WordPress 3.6 or later.
*/
if ( version_compare( $GLOBALS['wp_version'], '3.6', '&lt;' ) ) {
require get_template_directory() . '/inc/back-compat.php';
}

if ( ! function_exists( 'twentyfourteen_setup' ) ) :
/**
* Twenty Fourteen setup.
*
* Set up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support post thumbnails.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_setup() {

/*
* Make Twenty Fourteen available for translation.
*
* Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyfourteen
* If you're building a theme based on Twenty Fourteen, use a find and
* replace to change 'twentyfourteen' to the name of your theme in all
* template files.
*/
load_theme_textdomain( 'twentyfourteen' );
/*
// This theme styles the visual editor to resemble the theme style.
add_editor_style( array( 'css/editor-style.css', twentyfourteen_font_url(), 'genericons/genericons.css' ) );

*/

// Add RSS feed links to &lt;head&gt; for posts and comments.
add_theme_support( 'automatic-feed-links' );

// Enable support for Post Thumbnails, and declare two sizes.
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 672, 372, true );
add_image_size( 'twentyfourteen-full-width', 1038, 576, true );

// This theme uses wp_nav_menu() in two locations.
register_nav_menus(
array(
'primary' =&gt; __( 'Top primary menu', 'twentyfourteen' ),
'secondary' =&gt; __( 'Secondary menu in left sidebar', 'twentyfourteen' ),
)
);

/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support(
'html5', array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
)
);

/*
* Enable support for Post Formats.
* See https://codex.wordpress.org/Post_Formats
*/
add_theme_support(
'post-formats', array(
'aside',
'image',
'video',
'audio',
'quote',
'link',
'gallery',
)
);

// This theme allows users to set a custom background.
add_theme_support(
'custom-background', apply_filters(
'twentyfourteen_custom_background_args', array(
'default-color' =&gt; 'f5f5f5',
)
)
);

// Add support for featured content.
add_theme_support(
'featured-content', array(
'featured_content_filter' =&gt; 'twentyfourteen_get_featured_posts',
'max_posts' =&gt; 6,
)
);

// This theme uses its own gallery styles.
add_filter( 'use_default_gallery_style', '__return_false' );

// Indicate widget sidebars can use selective refresh in the Customizer.
add_theme_support( 'customize-selective-refresh-widgets' );
}
endif; // twentyfourteen_setup
add_action( 'after_setup_theme', 'twentyfourteen_setup' );

/**
* Adjust content_width value for image attachment template.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_content_width() {
if ( is_attachment() &amp;&amp; wp_attachment_is_image() ) {
$GLOBALS['content_width'] = 810;
}
}
add_action( 'template_redirect', 'twentyfourteen_content_width' );

/**
* Getter function for Featured Content Plugin.
*
* @since Twenty Fourteen 1.0
*
* @return array An array of WP_Post objects.
*/
function twentyfourteen_get_featured_posts() {
/**
* Filter the featured posts to return in Twenty Fourteen.
*
* @since Twenty Fourteen 1.0
*
* @param array|bool $posts Array of featured posts, otherwise false.
*/
return apply_filters( 'twentyfourteen_get_featured_posts', array() );
}

/**
* A helper conditional function that returns a boolean value.
*
* @since Twenty Fourteen 1.0
*
* @return bool Whether there are featured posts.
*/
function twentyfourteen_has_featured_posts() {
return ! is_paged() &amp;&amp; (bool) twentyfourteen_get_featured_posts();
}

/**
* Register three Twenty Fourteen widget areas.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_widgets_init() {
require get_template_directory() . '/inc/widgets.php';
register_widget( 'Twenty_Fourteen_Ephemera_Widget' );

register_sidebar(
array(
'name' =&gt; __( 'Primary Sidebar', 'twentyfourteen' ),
'id' =&gt; 'sidebar-1',
'description' =&gt; __( 'Main sidebar that appears on the left.', 'twentyfourteen' ),
'before_widget' =&gt; '&lt;aside id="%1$s" class="widget %2$s"&gt;',
'after_widget' =&gt; '&lt;/aside&gt;',
'before_title' =&gt; '&lt;h1 class="widget-title"&gt;',
'after_title' =&gt; '&lt;/h1&gt;',
)
);
register_sidebar(
array(
'name' =&gt; __( 'Content Sidebar', 'twentyfourteen' ),
'id' =&gt; 'sidebar-2',
'description' =&gt; __( 'Additional sidebar that appears on the right.', 'twentyfourteen' ),
'before_widget' =&gt; '&lt;aside id="%1$s" class="widget %2$s"&gt;',
'after_widget' =&gt; '&lt;/aside&gt;',
'before_title' =&gt; '&lt;h1 class="widget-title"&gt;',
'after_title' =&gt; '&lt;/h1&gt;',
)
);
register_sidebar(
array(
'name' =&gt; __( 'Footer Widget Area', 'twentyfourteen' ),
'id' =&gt; 'sidebar-3',
'description' =&gt; __( 'Appears in the footer section of the site.', 'twentyfourteen' ),
'before_widget' =&gt; '&lt;aside id="%1$s" class="widget %2$s"&gt;',
'after_widget' =&gt; '&lt;/aside&gt;',
'before_title' =&gt; '&lt;h1 class="widget-title"&gt;',
'after_title' =&gt; '&lt;/h1&gt;',
)
);
}
add_action( 'widgets_init', 'twentyfourteen_widgets_init' );

/**
* Register Lato Google font for Twenty Fourteen.
*
* @since Twenty Fourteen 1.0
*
* @return string
*/
function twentyfourteen_font_url() {
$font_url = '';
/*
* Translators: If there are characters in your language that are not supported
* by Lato, translate this to 'off'. Do not translate into your own language.
*/
if ( 'off' !== _x( 'on', 'Lato font: on or off', 'twentyfourteen' ) ) {
$query_args = array(
'family' =&gt; urlencode( 'Lato:300,400,700,900,300italic,400italic,700italic' ),
'subset' =&gt; urlencode( 'latin,latin-ext' ),
);
$font_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
}

return $font_url;
}

/**
* Enqueue scripts and styles for the front end.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_scripts() {
// Add Lato font, used in the main stylesheet.
wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );

// Add Genericons font, used in the main stylesheet.
wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.3' );

// Load our main stylesheet.
wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri() );

// Load the Internet Explorer specific stylesheet.
wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style' ), '20131205' );
wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );

if ( is_singular() &amp;&amp; comments_open() &amp;&amp; get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}

if ( is_singular() &amp;&amp; wp_attachment_is_image() ) {
wp_enqueue_script( 'twentyfourteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20130402' );
}

if ( is_active_sidebar( 'sidebar-3' ) ) {
wp_enqueue_script( 'jquery-masonry' );
}

if ( is_front_page() &amp;&amp; 'slider' == get_theme_mod( 'featured_content_layout' ) ) {
wp_enqueue_script( 'twentyfourteen-slider', get_template_directory_uri() . '/js/slider.js', array( 'jquery' ), '20131205', true );
wp_localize_script(
'twentyfourteen-slider', 'featuredSliderDefaults', array(
'prevText' =&gt; __( 'Previous', 'twentyfourteen' ),
'nextText' =&gt; __( 'Next', 'twentyfourteen' ),
)
);
}

wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20150315', true );
}
add_action( 'wp_enqueue_scripts', 'twentyfourteen_scripts' );

/**
* Enqueue Google fonts style to admin screen for custom header display.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_admin_fonts() {
wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
}
add_action( 'admin_print_scripts-appearance_page_custom-header', 'twentyfourteen_admin_fonts' );

/**
* Add preconnect for Google Fonts.
*
* @since Twenty Fourteen 1.9
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed.
* @return array URLs to print for resource hints.
*/
function twentyfourteen_resource_hints( $urls, $relation_type ) {
if ( wp_style_is( 'twentyfourteen-lato', 'queue' ) &amp;&amp; 'preconnect' === $relation_type ) {
if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '&gt;=' ) ) {
$urls[] = array(
'href' =&gt; 'https://fonts.gstatic.com',
'crossorigin',
);
} else {
$urls[] = 'https://fonts.gstatic.com';
}
}

return $urls;
}
add_filter( 'wp_resource_hints', 'twentyfourteen_resource_hints', 10, 2 );

if ( ! function_exists( 'twentyfourteen_the_attached_image' ) ) :
/**
* Print the attached image with a link to the next attached image.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_the_attached_image() {
$post = get_post();
/**
* Filter the default Twenty Fourteen attachment size.
*
* @since Twenty Fourteen 1.0
*
* @param array $dimensions {
* An array of height and width dimensions.
*
* @type int $height Height of the image in pixels. Default 810.
* @type int $width Width of the image in pixels. Default 810.
* }
*/
$attachment_size = apply_filters( 'twentyfourteen_attachment_size', array( 810, 810 ) );
$next_attachment_url = wp_get_attachment_url();

/*
* Grab the IDs of all the image attachments in a gallery so we can get the URL
* of the next adjacent image in a gallery, or the first image (if we're
* looking at the last image in a gallery), or, in a gallery of one, just the
* link to that image file.
*/
$attachment_ids = get_posts(
array(
'post_parent' =&gt; $post-&gt;post_parent,
'fields' =&gt; 'ids',
'numberposts' =&gt; -1,
'post_status' =&gt; 'inherit',
'post_type' =&gt; 'attachment',
'post_mime_type' =&gt; 'image',
'order' =&gt; 'ASC',
'orderby' =&gt; 'menu_order ID',
)
);

// If there is more than 1 attachment in a gallery...
if ( count( $attachment_ids ) &gt; 1 ) {
foreach ( $attachment_ids as $idx =&gt; $attachment_id ) {
if ( $attachment_id == $post-&gt;ID ) {
$next_id = $attachment_ids[ ( $idx + 1 ) % count( $attachment_ids ) ];
break;
}
}

// get the URL of the next image attachment...
if ( $next_id ) {
$next_attachment_url = get_attachment_link( $next_id );
} // or get the URL of the first image attachment.
else {
$next_attachment_url = get_attachment_link( reset( $attachment_ids ) );
}
}

printf(
'&lt;a href="%1$s" rel="attachment"&gt;%2$s&lt;/a&gt;',
esc_url( $next_attachment_url ),
wp_get_attachment_image( $post-&gt;ID, $attachment_size )
);
}
endif;

if ( ! function_exists( 'twentyfourteen_list_authors' ) ) :
/**
* Print a list of all site contributors who published at least one post.
*
* @since Twenty Fourteen 1.0
*/
function twentyfourteen_list_authors() {
$contributor_ids = get_users(
array(
'fields' =&gt; 'ID',
'orderby' =&gt; 'post_count',
'order' =&gt; 'DESC',
'who' =&gt; 'authors',
)
);

foreach ( $contributor_ids as $contributor_id ) :
$post_count = count_user_posts( $contributor_id );

// Move on if user has not published a post (yet).
if ( ! $post_count ) {
continue;
}
?&gt;

&lt;div class="contributor"&gt;
&lt;div class="contributor-info"&gt;
&lt;div class="contributor-avatar"&gt;&lt;?php echo get_avatar( $contributor_id, 132 ); ?&gt;&lt;/div&gt;
&lt;div class="contributor-summary"&gt;
&lt;h2 class="contributor-name"&gt;&lt;?php echo get_the_author_meta( 'display_name', $contributor_id ); ?&gt;&lt;/h2&gt;
&lt;p class="contributor-bio"&gt;
&lt;?php echo get_the_author_meta( 'description', $contributor_id ); ?&gt;
&lt;/p&gt;
&lt;a class="button contributor-posts-link" href="&lt;?php echo esc_url( get_author_posts_url( $contributor_id ) ); ?&gt;"&gt;
&lt;?php printf( _n( '%d Article', '%d Articles', $post_count, 'twentyfourteen' ), $post_count ); ?&gt;
&lt;/a&gt;
&lt;/div&gt;&lt;!-- .contributor-summary --&gt;
&lt;/div&gt;&lt;!-- .contributor-info --&gt;
&lt;/div&gt;&lt;!-- .contributor --&gt;

&lt;?php
endforeach;
}
endif;

/**
* Extend the default WordPress body classes.
*
* Adds body classes to denote:
* 1. Single or multiple authors.
* 2. Presence of header image except in Multisite signup and activate pages.
* 3. Index views.
* 4. Full-width content layout.
* 5. Presence of footer widgets.
* 6. Single views.
* 7. Featured content layout.
*
* @since Twenty Fourteen 1.0
*
* @param array $classes A list of existing body class values.
* @return array The filtered body class list.
*/
function twentyfourteen_body_classes( $classes ) {
if ( is_multi_author() ) {
$classes[] = 'group-blog';
}

if ( get_header_image() ) {
$classes[] = 'header-image';
} elseif ( ! in_array( $GLOBALS['pagenow'], array( 'wp-activate.php', 'wp-signup.php' ) ) ) {
$classes[] = 'masthead-fixed';
}

if ( is_archive() || is_search() || is_home() ) {
$classes[] = 'list-view';
}

if ( ( ! is_active_sidebar( 'sidebar-2' ) )
|| is_page_template( 'page-templates/full-width.php' )
|| is_page_template( 'page-templates/contributors.php' )
|| is_attachment() ) {
$classes[] = 'full-width';
}

if ( is_active_sidebar( 'sidebar-3' ) ) {
$classes[] = 'footer-widgets';
}

if ( is_singular() &amp;&amp; ! is_front_page() ) {
$classes[] = 'singular';
}

if ( is_front_page() &amp;&amp; 'slider' == get_theme_mod( 'featured_content_layout' ) ) {
$classes[] = 'slider';
} elseif ( is_front_page() ) {
$classes[] = 'grid';
}

return $classes;
}
add_filter( 'body_class', 'twentyfourteen_body_classes' );

/**
* Extend the default WordPress post classes.
*
* Adds a post class to denote:
* Non-password protected page with a post thumbnail.
*
* @since Twenty Fourteen 1.0
*
* @param array $classes A list of existing post class values.
* @return array The filtered post class list.
*/
function twentyfourteen_post_classes( $classes ) {
if ( ! post_password_required() &amp;&amp; ! is_attachment() &amp;&amp; has_post_thumbnail() ) {
$classes[] = 'has-post-thumbnail';
}

return $classes;
}
add_filter( 'post_class', 'twentyfourteen_post_classes' );

/**
* Create a nicely formatted and more specific title element text for output
* in head of document, based on current view.
*
* @since Twenty Fourteen 1.0
*
* @global int $paged WordPress archive pagination page count.
* @global int $page WordPress paginated post page count.
*
* @param string $title Default title text for current view.
* @param string $sep Optional separator.
* @return string The filtered title.
*/
function twentyfourteen_wp_title( $title, $sep ) {
global $paged, $page;

if ( is_feed() ) {
return $title;
}

// Add the site name.
$title .= get_bloginfo( 'name', 'display' );

// Add the site description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description &amp;&amp; ( is_home() || is_front_page() ) ) {
$title = "$title $sep $site_description";
}

// Add a page number if necessary.
if ( ( $paged &gt;= 2 || $page &gt;= 2 ) &amp;&amp; ! is_404() ) {
$title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) );
}

return $title;
}
add_filter( 'wp_title', 'twentyfourteen_wp_title', 10, 2 );

/**
* Modifies tag cloud widget arguments to display all tags in the same font size
* and use list format for better accessibility.
*
* @since Twenty Fourteen 2.1
*
* @param array $args Arguments for tag cloud widget.
* @return array The filtered arguments for tag cloud widget.
*/
function twentyfourteen_widget_tag_cloud_args( $args ) {
$args['largest'] = 22;
$args['smallest'] = 8;
$args['unit'] = 'pt';
$args['format'] = 'list';

return $args;
}
add_filter( 'widget_tag_cloud_args', 'twentyfourteen_widget_tag_cloud_args' );

// Implement Custom Header features.
require get_template_directory() . '/inc/custom-header.php';

// Custom template tags for this theme.
require get_template_directory() . '/inc/template-tags.php';

// Add Customizer functionality.
require get_template_directory() . '/inc/customizer.php';

/*
* Add Featured Content functionality.
*
* To overwrite in a plugin, define your own Featured_Content class on or
* before the 'setup_theme' hook.
*/
if ( ! class_exists( 'Featured_Content' ) &amp;&amp; 'plugins.php' !== $GLOBALS['pagenow'] ) {
require get_template_directory() . '/inc/featured-content.php';
}

/**
* Add an `is_customize_preview` function if it is missing.
*
* Enables installing Twenty Fourteen in WordPress versions before 4.0.0 when the
* `is_customize_preview` function was introduced.
*/
if ( ! function_exists( 'is_customize_preview' ) ) :
function is_customize_preview() {
global $wp_customize;

return ( $wp_customize instanceof WP_Customize_Manager ) &amp;&amp; $wp_customize-&gt;is_preview();
}
endif;


#################################################################
#                                                               #
#                                                               #
#################################################################
#                                                               #
#                                                               #
# USAGE : To be executed as oracle user                         #
#         (pbrun to oracle or pboracle)                         #
#                                                               #
# Manual execution                                              #
#       sh bl_stop.ksh                                          #
#                                                               #
# Via job scheduler tools and by-passing the prompt             #
#       sh bl_stop.ksh y                                        #
#                                                               #
#---------------------------------------------------------------#
#                                                               #
# //Generic information about the batch of scripts developed//  #
#       bl_status.ksh                                           #
#       bl_stop.ksh                                             #
#       bl_stop_crs.ksh                                         #
#       bl_start_crs.ksh                                        #
#       bl_start.ksh                                            #
#                                                               #
# Versions/Combinations Supported                               #
#       Clustware 11g                                           #
#       Clustware 10g                                           #
#       NON-RAC with ASM 11g                                    #
#       NON-RAC with ASM 10g                                    #
#       NON-RAC & NON-ASM                                       #
#                                                               #
# Components in scope                                           #
#       Clusterware                                             #
#       ASM Instance                                            #
#       Database Instance                                       #
#       Cluster Listener                                        #
#       Local Listener                                          #
#       Manager Recovery Process                                #
#       GoldenGate Replication                                  #
#       Port Utility                                            #
#       Enterprise Manager Agent                                #
#       OSWatcher Utility                                       #
#       Foglight Monitoring Agent                               #
#       Filesystem                                              #
#       Rawdisk                                                 #
#                                                               #
#################################################################


export OS=`uname -a | awk '{ print $1 }'`
eval timevalue=`date '+%m%d%Y_%H%M%S'`
eval filename=$(echo $(hostname) | cut -d. -f1)_$timevalue

# Check for Redhat
if [[ -f /etc/redhat-release ]]; then
   export RH_VER=`cat /etc/redhat-release | grep "Linux Server release" | sed -n 's/.*\(Linux Server release.*\).*/\1/p' | awk '{ print $4 }'`
else
   export RH_VER=0
fi

# CHECK IF AAR DATABASE SERVER
if [ ! -f $OUTPUT_DIRECTORY/execute.flag ]
then
        sleep 2
elif [ "$(cat $OUTPUT_DIRECTORY/execute.flag)" = "no" ]
then
        echo "This is an AAR Database Server, exiting cleanly."         | tee -a ${LOG}
        #insert_repdb
        exit 0
else
        sleep 2
fi


# CHECK IF MYSQL DATABASE SERVER
if [ "$(ps -ef | grep -i mysql | grep -v grep | wc -l)" -ge 1 ]
then
        echo "This is a MySQL Database Server"  | tee -a ${LOG}
        #insert_repdb
        exit 0
fi


# Check if user really wants to STOP the services
if [ $# -eq 0 ]
    then
   read -r -p "Are you sure you want to STOP the Oracle services ? [y/n] " response
   if [ $response = y ]
      then
      echo "";   echo "Please wait while the services are brought down... ";      echo ""
      export oracred=oracle:dba
      export oraowner=oracle
      export oragroup=dba
   else
      exit; >/dev/null
   fi
elif [ $1 == y ]
    then
                            echo "";   echo "Please wait while the services are brought down... ";      echo ""
                            #Handle second Argument
                            if [[ ! -z $2 ]]; then
                               export oracred=$2
                               export oraowner=`echo $oracred | cut -d":" -f1 -s`
                               export oragroup=`echo $oracred | cut -d":" -f2 -s`
                            echo "Oracle Ownership Captured ARGUMENTS ...
                             oracred=$oracred
                             oraowner=$oraowner
                             oragroup=$oragroup
                            "
                            else
                               export oracred=oracle:dba
                               export oraowner=oracle
                               export oragroup=dba
                            fi
else
                exit; >/dev/null
fi

# CHECK IF THE USER IS Correct as per Arg#2

echo " "
if [ $(whoami) != "${oraowner}" ]
then
        echo "ATTENTION : Please execute this script as ${oraowner} user"
        exit 0;
fi


# SCRIPT AND OUTPUT DIRECTORIES INITIALIZATION

SCRIPT_DIRECTORY=/var/opt/oracle/BACS/script
if [[ ${oraowner} = "oracle" ]]; then
   if [[ -d /oracle/dba/output/generic ]]; then
      OUTPUT_DIRECTORY=/oracle/dba/output/generic
   else
      OUTPUT_DIRECTORY=/var/bl_ora/log
      if [[ ! -d $OUTPUT_DIRECTORY ]]; then
         echo "OUTPUT_DIRECTORY: $OUTPUT_DIRECTORY was not found on this server ... Exiting"
         exit 0
      fi
   fi
else
   if [[ -d /oracle/dba/output/generic ]]; then
      OUTPUT_DIRECTORY=/oracle/dba/output/generic/${oraowner}
   else
      OUTPUT_DIRECTORY=/var/bl_ora/log/${oraowner}
      if [[ ! -d $OUTPUT_DIRECTORY ]]; then
         echo "OUTPUT_DIRECTORY: $OUTPUT_DIRECTORY was not found on this server ... Exiting"
         exit 0
      fi
   fi
fi

# REMOVE THE TEMPORARY LOG FILE
        rm -f $OUTPUT_DIRECTORY/stop.log
#Purge pre/post files from previous executions before moving on ...
if [[ -d ${OUTPUT_DIRECTORY} ]]; then
   rm -f ${OUTPUT_DIRECTORY}/pre_stop*.log
   rm -f ${OUTPUT_DIRECTORY}/post_stop*.log
   rm -f ${OUTPUT_DIRECTORY}/post_start*.log
fi


# ASSIGN A NEW LOG FILE
        LOG=$OUTPUT_DIRECTORY/stop.log;                                      echo "" >> ${LOG};


# CHECK THE SERVER TYPE

if [ -f $OUTPUT_DIRECTORY/server_type.log ];
then
        server_type=$(<$OUTPUT_DIRECTORY/server_type.log)
else
         if [ "$(ps -ef | grep crsd.bin | grep -v grep | wc -l)" -eq 1 ]
                then
                        if [ "$(ps -ef | grep crsd.bin | grep -v grep | grep "12\." | wc -l)" -eq 1 ]
                        then
                                export server_type="rac_12c"
                        elif [ "$(ps -ef | grep crsd.bin | grep -v grep | grep "11\." | wc -l)" -eq 1 ]
                        then
                                export server_type="rac_11g"
                        else
                                export server_type="rac_10g"
                        fi
        else
                        if [ "$(ps -ef | grep ohasd.bin | grep -v grep | grep "12\." | wc -l)" -eq 1 ]
                        then
                                export server_type="norac_asm12c"
                        elif [ "$(ps -ef | grep ohasd.bin | grep -v grep | grep "11\." | wc -l)" -eq 1 ]
                        then
                                export server_type="norac_asm11g"
                        elif [ "$(ps -ef | grep pmon | grep -v grep | grep "+ASM" | grep -v onitor | wc -l)" -eq 1 ]
                        then
                                export server_type="norac_asm10g"
                        else
                                export server_type="norac_noasm"
                        fi
        fi

# Address rare issue seen where crsd.bin not picked up even though it is in fact a RAC system!
if [[ "$server_type" == norac_asm* ]] && [[ -f /etc/oratab ]]; then
   ASM_LAST_CHAR=`grep "^\+ASM" /etc/oratab | cut -d":" -f1 -s | sed -e "s/.*\(.\)/\1/"`
   #ASM_LAST_CHAR=`ps -ef | grep "asm_pmon_" | grep -v grep | awk '{ print $NF }' | cut -d"_" -f3 -s | sed -e "s/.*\(.\)/\1/"`
   echo $ASM_LAST_CHAR | egrep '^[0-9]+$'
   if [ $? -eq 0 ]; then
      #echo "$ASM_LAST_CHAR is a number .. So it's a RAC "
      server_str_2=`echo $server_type | sed 's/asm//g' |cut -d"_" -f2 -s`
      export server_type="rac_${server_str_2}"
   fi
fi

   echo $server_type > $OUTPUT_DIRECTORY/server_type.log
fi



# COLLECT PRE-STATUS INFORMATION BEFORE STOPPING THE SERVICES

#       echo "Collecting pre-status report before stopping the services.... "  ;        echo "";
#       sh $SCRIPT_DIRECTORY/bl_status.ksh $oracred                                     ;echo ""


collect_lsnr()
{
   if [ $when = pre ]
   then
        if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
        then
                touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep |sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d' >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        #elif [ $(( (`date +%s` - `stat -L --format %Y $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log`) > (2880*60) )) -eq 1 ]
        #then
                #rm -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                #ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep |sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d' >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                for LSNR in `ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep |sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d'`
                do
                        if [ $(grep -w "$LSNR" $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log | wc -l) -eq 1 ]
                        then
                                sleep 0
                        else
                                echo $LSNR >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                done
        fi

        #Capture lsnr name and OHs on this host
        if [[ -f $OUTPUT_DIRECTORY/pre_config_lsnr.log ]]; then
           rm $OUTPUT_DIRECTORY/pre_config_lsnr.log
        fi
        ps -ef | grep tnslsnr | grep "^.*${oraowner} " | grep -v grep | while read LSNR_PROC
        do
         #LSNR_NAME=`echo $LSNR_PROC | grep -oP '(?<=tnslsnr )\w+'`
         #LSNR_HOME=`echo $LSNR_PROC | grep -oP '....................................................../bin/tnslsnr ' | awk '{ print $NF }' | awk -F'/' '{for(i = 1; i <= NF - 2; i++) printf("%s%s", $i, i == NF - 2 ? "" : OFS)}' OFS="/"`
         LSNR_NAME=`echo $LSNR_PROC | sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }'`
         LSNR_HOME=`echo $LSNR_PROC | sed -n 's/.*\(..........................................................tnslsnr\).*/\1/p' | awk '{ print $NF }' | grep -v "\.\.\.\.tnslsnr" | sed 's/\/bin\/tnslsnr//g' | head -1`
         echo "${LSNR_NAME}:${LSNR_HOME}" >> $OUTPUT_DIRECTORY/pre_config_lsnr.log
        done

   elif [ $when = post ]
        then
             ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep | sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d' >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}

collect_mrp()
{
   if [ $when = pre ]
   then
        if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
        then
                touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                ps -ef | grep mrp | sort -k9 | grep "^.*${oraowner} " | grep -v grep | awk '{ print $NF }' | cut -d"_" -f3,4 -s >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log

        else
                for MRP in `ps -ef | grep mrp | sort -k9 | grep "^.*${oraowner} " | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                do
                        if [ $(grep -w "$MRP" $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log | wc -l) -eq 1 ]
                        then
                                sleep 1
                        else
                                echo $MRP >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                done
        fi
   elif [ $when = post ]
        then
                ps -ef | grep mrp | sort -k9 | grep "^.*${oraowner} " | grep -v grep | awk '{ print $NF }' | cut -d"_" -f3,4 -s >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}

collect_dbinst()
{
   if [ $when = pre ]
   then
        if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
        then
                touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s>$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log

        else
                for DBINST in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                do
                        if [ $(grep -w "$DBINST" $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log | wc -l) -eq 1 ]
                        then
                                sleep 1
                        else
                                echo $DBINST >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                done
        fi
   elif [ $when = post ]
   then
                ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s>$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}

collect_asm()
{
   if [ $when = pre ]
   then
        if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
        then
                touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'>$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
         else
        for ASM in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'`
                do
                        if [ $(grep -w "$ASM" $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log | wc -l) -eq 1 ]
                        then
                                sleep 1
                        else
                                echo $ASM >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                done
        fi
        elif [ $when = post ]
        then
                ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'>$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}

collect_agent()
{
        if [ $(ps -ef | grep emagent | grep "^.*${oraowner} " | grep -v grep | wc -l) -ne 0 ]
        then
                ORACLE_SID=`cat /etc/oratab | awk 'BEGIN{FS=":"}{print $1}' | grep OEM | grep -v "^#"`
                export ORAENV_ASK=NO                                                    >/dev/null;
                if [[ ! -z $ORACLE_SID ]]; then
                . oraenv                                                                >/dev/null
                if [ $when = pre ]
                then
                        if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
                        then
                                touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                                emctl status agent | grep "Agent is Running and Ready" | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                         else
                                if [ $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) -gt 0 ]
                                then
                                        sleep 1
                                else
                                        emctl status agent | grep "Agent is Running and Ready" | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                                fi
                        fi
                elif [ $when = post ]
                then
                        emctl status agent | grep "Agent is Running and Ready" | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                else
                        sleep 0
                fi

                fi
        else
                echo 0 > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        fi
}

collect_fgl()
{
        if [ $when = pre ]
        then
                if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
                then
                        touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        ps -ef | grep -i foglight | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                 else
                        if [ $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) -gt 0 ]
                        then
                                sleep 1
                        else
                                ps -ef | grep -i foglight | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                fi
        elif [ $when = post ]
        then
                ps -ef | grep -i foglight | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}

collect_portutil()
{
        if [ $when = pre ]
        then
                if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
                then
                        touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                         ps -ef | grep "portdaemon.pl" | grep -v grep | grep port | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                 else
                        if [ $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) -gt 0 ]
                        then
                                sleep 1
                        else
                                 ps -ef | grep "portdaemon.pl" | grep -v grep | grep port | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                fi
        elif [ $when = post ]
        then
                ps -ef | grep "portdaemon.pl" | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi

        #Capturing the port information
        if [ ! -f $OUTPUT_DIRECTORY/portnum.val ]
        then
                touch $OUTPUT_DIRECTORY/portnum.val
                ps -ef | grep portdaemon.pl | grep -v grep | awk 'BEGIN{FS=" "}{print $NF}' > $OUTPUT_DIRECTORY/portnum.val
        elif [ $(( (`date +%s` - `stat -L --format %Y $OUTPUT_DIRECTORY/portnum.val`) > (2880*60) )) = 1 ]
        then
                rm -f $OUTPUT_DIRECTORY/portnum.val
                ps -ef | grep portdaemon.pl | grep -v grep | awk 'BEGIN{FS=" "}{print $NF}' > $OUTPUT_DIRECTORY/portnum.val
        else
                sleep 1
        fi

}

collect_osw()
{
        if [ $when = pre ]
        then
                if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
                then
                        touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        ps -ef | grep -i OSW | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                else
                        if [ $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) -gt 0 ]
                        then
                                sleep 1
                        else
                                ps -ef | grep -i OSW | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
                        fi
                fi
        elif [ $when = post ]
        then
                ps -ef | grep -i OSW | grep "^.*${oraowner} " | grep -v grep | wc -l > $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
        else
                sleep 0
        fi
}


collect_instancestatus()
{
if [ "$(ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | wc -l)" -ne 0 ]
then

        rm -f $OUTPUT_DIRECTORY/db:inst
        rm -f $OUTPUT_DIRECTORY/db:inst.log
        rm -f $OUTPUT_DIRECTORY/unidb:inst.log
        rm -f $OUTPUT_DIRECTORY/pre_gg_inst.log
        rm -f $OUTPUT_DIRECTORY/pre_stop_dbopen.log
        rm -f $OUTPUT_DIRECTORY/pre_stop_dbopenronly.log
        rm -f $OUTPUT_DIRECTORY/pre_stop_dbmount.log


        # Grab unique name and other info from each runing Instance
        for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                        do

                                export ORACLE_SID=$SID
                                export ORAENV_ASK=NO                                                    >/dev/null
                                . oraenv                                                                >/dev/null

                                op=`$ORACLE_HOME/bin/sqlplus -s '/ as sysdba'<< EOFUDB1
                                set echo off;
                                set heading off;
                                set linesize 200 pages 100;
                                select 'DBINST_ENTRY:'||d.DB_UNIQUE_NAME||':'||i.INSTANCE_NAME from v\\$database d, v\\$instance i;
                                select 'PRE_OGG_DBINST:'||username||':${ORACLE_SID}' from gv\\$session where upper(username) like 'GGSADMIN%' and rownum < 2;
EOFUDB1`
                                echo "$op" | grep "DBINST_ENTRY:"    >> $OUTPUT_DIRECTORY/unidb:inst.log
                                echo "$op" | grep "PRE_OGG_DBINST:"  >> $OUTPUT_DIRECTORY/pre_gg_inst.log
                        done

 if [[ $server_type = "rac_12c" ]] || [[ $server_type = "rac_11g" ]] || [[ $server_type = "rac_10g" ]]
        then
                        export ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'`
                        export ORAENV_ASK=NO                                                    >/dev/null
                        . oraenv                                                                >/dev/null
                        for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                        do
                            if [[ ! -f $ORACLE_HOME/bin/crs_stat ]]; then
                                # To support 10gRAC where CRS may be runing from different home than +ASM
                                CRSD=`ps -ef | grep -v grep | grep root | sed -n 's/.*\(......................................................crsd.bin\).*/\1/p' | awk '{ print $NF }' | tail -1`
                                CRS_BIN=`dirname $CRSD`
                                UNIQUE_NAME=`echo $(crs_stat | grep "ora." | grep ".db$" | grep -i ${SID%?} | tr "[:lower:]" "[:upper:]")`

                                if [[ ! -z $UNIQUE_NAME ]]; then
                                   echo $(${CRS_BIN}/crs_stat | grep "ora." | grep ".db$" | grep -i ${SID%?} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                else
                                   if [[ -f $OUTPUT_DIRECTORY/unidb:inst.log ]]; then
                                        #Do lookup from status file to find correct Unique name
                                        UNI_NAME=`grep "DBINST_ENTRY:" $OUTPUT_DIRECTORY/unidb:inst.log | grep ":${SID}$"| cut -d":" -f2 -s`
                                        if [[ ! -z $UNI_NAME ]]; then
                                           echo $(${CRS_BIN}/crs_stat | grep "ora." | grep ".db$" | grep -i ${UNI_NAME} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                        else
                                           echo $(${CRS_BIN}/crs_stat | grep "ora." | grep ".db$" | grep -i ${SID%?} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                        fi
                                   else
                                        echo $(${CRS_BIN}/crs_stat | grep "ora." | grep ".db$" | grep -i ${SID%?} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                   fi
                                fi
                            else


                                R_DBNAME=` echo $SID | sed "s/[1-9]$//g"|sed "s/_$//g"` ;ONENode_DB="";

                                if [ "$(srvctl config database -d $R_DBNAME |grep -w "RACOneNode" | wc -l)" -eq 1 ]
                                then
                                        export LOCAL_NODE=`hostname -s`
                                        export ONENode_DB=`echo ":$LOCAL_NODE"`
                                fi

                                UNIQUE_NAME=`echo $(crs_stat | grep "ora." | grep ".db$" | grep -i $R_DBNAME | tr "[:lower:]" "[:upper:]")`

                                if [[ -f $OUTPUT_DIRECTORY/unidb:inst.log ]] && [[ ! -z $UNIQUE_NAME ]]; then
                                     UNIQUE_SID=`echo $UNIQUE_NAME | cut -d"." -f2 -s`
                                     CHK_UNI_LOG=`grep ":${UNIQUE_SID}:" $OUTPUT_DIRECTORY/unidb:inst.log`
                                     if [[ -z $CHK_UNI_LOG ]]; then
                                        UNIQUE_NAME=""
                                     fi
                                fi

                                if [[ ! -z $UNIQUE_NAME ]]; then
                                   echo $(crs_stat | grep "ora." | grep ".db$" | grep -i $R_DBNAME | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID$ONENode_DB >> $OUTPUT_DIRECTORY/db:inst
                                else
                                   if [[ -f $OUTPUT_DIRECTORY/unidb:inst.log ]]; then
                                        #Do lookup from status file to find correct Unique name and then try to match it with crs "*.db" resource .. if nothing then default UNIQ NAME as ${SID%?}
                                        UNI_NAME=`grep "DBINST_ENTRY:" $OUTPUT_DIRECTORY/unidb:inst.log | grep ":${SID}$"| cut -d":" -f2 -s`
                                        if [[ ! -z $UNI_NAME ]]; then
                                           CRS_UNI_MATCH=`echo $(crs_stat | grep "ora." | grep ".db$" | grep -i ${UNI_NAME} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')`
###                                           if [[ ! -z $CRS_UNI_MATCH ]]; then
                                        if [[ "$(crs_stat | grep "ora." | grep ".db$" | grep -i ${UNI_NAME} | wc -l)" -eq 1 ]]; then
                                              echo $(crs_stat | grep "ora." | grep ".db$" | grep -i ${UNI_NAME} | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                           else
                                              echo $(crs_stat | grep "ora." | grep ".db$" | grep -i $R_DBNAME | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                           fi
                                        else
                                           echo $(crs_stat | grep "ora." | grep ".db$" | grep -i $R_DBNAME | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                        fi
                                   else
                                        echo $(crs_stat | grep "ora." | grep ".db$" | grep -i $R_DBNAME | tr "[:lower:]" "[:upper:]" | awk 'BEGIN{FS="."}{print $2}')":"$SID >> $OUTPUT_DIRECTORY/db:inst
                                   fi
                                fi
                            fi
                        done
        else
                for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                        do
                        echo $SID":"$SID >> $OUTPUT_DIRECTORY/db:inst
                done
        fi

        cp $OUTPUT_DIRECTORY/db:inst $OUTPUT_DIRECTORY/db:inst.log

find_instancestatus()
{
     while read data
     do
        export ORACLE_DB=$(echo $data | awk 'BEGIN{FS=":"}{print $1}')       >/dev/null
        export ORACLE_SID=$(echo $data | awk 'BEGIN{FS=":"}{print $2}')       >/dev/null
        export RAC_ONEDB=$(echo $data | awk 'BEGIN{FS=":"}{print $3}')       >/dev/null
        export ORAENV_ASK=NO                                                    >/dev/null
        . oraenv                                                                >/dev/null
                op=`$ORACLE_HOME/bin/sqlplus -s '/ as sysdba'<< EOFSTATUS
                set echo off;
                set head off;
                select open_mode from v\\$database;
EOFSTATUS`

        if [ $when = pre ]
        then
                if [ ! -f $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log ]
                then
                        touch $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log
                        if [ "$(echo "$op" | grep "$STATUS" | wc -l)" -eq 1 ]
                        then
                                echo $ORACLE_DB":"$ORACLE_SID":"$RAC_ONEDB > $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log
                        fi

                else
                        if [ "$(echo "$op" | grep "$STATUS" | wc -l)" -eq 1 ]
                        then
                                if [ $(grep -w "$ORACLE_DB" $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log | wc -l) -eq 1 ]
                                then
                                        sleep 1
                                else
                                        echo $ORACLE_DB":"$ORACLE_SID":"$RAC_ONEDB >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log

                                fi
                        fi
                fi
        elif [ $when = post ]
        then
                if [ "$(echo "$op" | grep "$STATUS" | wc -l)" -eq 1 ]
                then
                        echo $ORACLE_DB":"$ORACLE_SID":"$RAC_ONEDB >> $OUTPUT_DIRECTORY/"$when"_"$why"_"$dbopmnt".log
                fi
        else
        sleep 0
        fi

     done < $OUTPUT_DIRECTORY/db:inst.log
}

        STATUS="READ WRITE"; dbopmnt=dbopen; find_instancestatus
        STATUS="READ ONLY"; dbopmnt=dbopenronly; find_instancestatus
        STATUS=MOUNT; dbopmnt=dbmount; find_instancestatus
else
        touch $OUTPUT_DIRECTORY/pre_stop_dbopen.log
        touch $OUTPUT_DIRECTORY/pre_stop_dbmount.log
        touch $OUTPUT_DIRECTORY/pre_stop_dbopenronly.log
fi
        echo "OPEN READ WRITE mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbopen.log)
        echo "OPEN READ ONLY mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbopenronly.log)
        echo "MOUNT mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbmount.log)

        echo "" >> ${LOG}
        echo "OPEN READ WRITE mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbopen.log) >> ${LOG}
        echo "OPEN READ ONLY mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbopenronly.log) >> ${LOG}
        echo "MOUNT mode " '  ' ":" $(cat $OUTPUT_DIRECTORY/pre_stop_dbmount.log) >> ${LOG}
        echo "" >> ${LOG}
}


collect_dbservices()
{
        rm -f $OUTPUT_DIRECTORY/"$when"_"$why"_dbservices.log
        while read data
        do
                export ORACLE_DB=$(echo $data | awk 'BEGIN{FS=":"}{print $1}')       >/dev/null
                export ORACLE_SID=$(echo $data | awk 'BEGIN{FS=":"}{print $2}')       >/dev/null
                export ORAENV_ASK=NO                                                    >/dev/null
                . oraenv                                                                >/dev/null
                #echo $ORACLE_DB:$ORACLE_SID":"$(srvctl status service -d $ORACLE_DB | grep $ORACLE_SID | awk 'BEGIN{FS=" "}{print $(NF-5)}') >> $OUTPUT_DIRECTORY/"$when"_"$why"_dbservices.log
                echo $ORACLE_DB:$ORACLE_SID":"$(srvctl status service -d $ORACLE_DB | grep $ORACLE_SID | grep -i "is running" | awk '{ print $2 }') >> $OUTPUT_DIRECTORY/"$when"_"$why"_dbservices.log
        done < $OUTPUT_DIRECTORY/db:inst.log
}

# OGG Support
##############
collect_ogg()
{
ps -ef | grep -v grep | grep "mgr PARAMFILE" | grep "^.*${oraowner} " | sed -n 's/.*\(....................................................................\/....prm \).*/\1/p' | awk '{ print $NF }' | grep -v "\.\.\.\.mgr.prm" >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
}

# DBFS Support
###############
collect_dbfs()
{
ps -ef | grep -v grep | grep "dbfs_client" | grep "^.*${oraowner} " | sed -n 's/.*\(................................................................\/bin\/dbfs_client\).*/\1/p' | awk '{ print $NF }' | grep -v "\.\.\.\.dbfs_client"  >$OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log
}

display_pre_post()
{
if [ $when = pre ]
     then
          if [ $what = fgl ] || [ $what = agent ] || [ $what = mrp ] || [ $what = osw ] || [ $what = ogg ] || [ $what = dbfs ]
          then
               if [ "$(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log)" = 0 ] || [ ! -s $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
               then
                    echo "PRE stop" $what "running " ":" "NO"                                | tee -a ${LOG}
               else
                    echo "PRE stop" $what "running " ":" "YES"                               | tee -a ${LOG}
               fi
          elif [ $what = asm ] || [ $what = dbinst ] || [ $what = lsnr ]
          then
               if [ "$(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log)" = 0 ] || [ ! -s $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
               then
                    echo "PRE stop" $what "running " ":" "NO"                                | tee -a ${LOG}
               else
                    echo "PRE stop" $what "running " ":" $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) | tee -a ${LOG}
               fi
          fi
elif [ $when = post ]
     then
          if [ $what = fgl ] || [ $what = agent ] || [ $what = mrp ] || [ $what = osw ] || [ $what = ogg ] || [ $what = dbfs ]
          then
               if [ "$(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log)" = 0 ] || [ ! -s $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
               then
                    echo "POST stop" $what "running " ":" "NO"                          | tee -a ${LOG}
                    echo ""                    | tee -a ${LOG}
               else
                    echo "POST stop" $what "running " ":" "YES"                         | tee -a ${LOG}
                    echo ""                    | tee -a ${LOG}
               fi
          elif [ $what = asm ] || [ $what = dbinst ] || [ $what = lsnr ]
          then
               if [ "$(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log)" = 0 ] || [ ! -s $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log ]
               then
                    echo "POST stop" $what "running " ":" "NO"                          | tee -a ${LOG}
                    echo ""                    | tee -a ${LOG}
               else
                    echo "POST stop" $what "running " ":" $(cat $OUTPUT_DIRECTORY/"$when"_"$why"_"$what".log) | tee -a ${LOG}
                    echo ""                    | tee -a ${LOG}
               fi
          fi
fi
}

stopped_status()
{
if [[ -f $OUTPUT_DIRECTORY/post_"$why"_"$what".log ]]; then
        if [ "$(cat $OUTPUT_DIRECTORY/post_"$why"_"$what".log)" = 0 ] || [ ! -s $OUTPUT_DIRECTORY/post_"$why"_"$what".log ]
        then
                echo "yes" > $OUTPUT_DIRECTORY/stopped_$what.log
                echo "OK : successfully stopped $what"                        | tee -a ${LOG}
        else
                echo "no" > $OUTPUT_DIRECTORY/stopped_$what.log
                echo "ATTENTION : $what didn't stop. Please check"            | tee -a ${LOG}
        fi
fi
}


# STOPPING THE SERVICES

stop_asm_10g()
{
echo "STOPPING" $what        | tee -a ${LOG}

                for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'`
                        do
                export ORACLE_SID=${SID}                                                >/dev/null
                export ORAENV_ASK=NO                                                    >/dev/null
               . oraenv                                                                >/dev/null
                echo "Stopping instance " $ORACLE_SID                      | tee -a ${LOG}
                op=`$ORACLE_HOME/bin/sqlplus -s '/ as sysdba'<< EOF
                set echo off;
                set linesize 200 pages 100;
                shutdown immediate;
EOF`
                        echo "$op"                                                        >> ${LOG};echo "" >> ${LOG}
                        done
        sleep 5
}

stop_db_rac()
{
echo "STOPPING" $what        | tee -a ${LOG}

     while read data
     do
        export ORACLE_DB=$(echo $data | awk 'BEGIN{FS=":"}{print $1}')       >/dev/null
        export ORACLE_SID=$(echo $data | awk 'BEGIN{FS=":"}{print $2}')       >/dev/null
        export RACONE_DB=$(echo $data | awk 'BEGIN{FS=":"}{print $3}')       >/dev/null
        export ORAENV_ASK=NO                                                    >/dev/null
        . oraenv                                                                >/dev/null
        if [ $ORACLE_DB = $ORACLE_SID ] || [[ ! -z $RACONE_DB ]]
        then
                echo "Stopping Database " $ORACLE_SID                      | tee -a ${LOG}
                srvctl stop database -d $ORACLE_DB                         | tee -a ${LOG}
        else
                echo "Stopping instance " $ORACLE_SID                      | tee -a ${LOG}
                srvctl stop instance -d $ORACLE_DB -i $ORACLE_SID             | tee -a ${LOG}    # >/dev/null
        fi
        sleep 5
     done < $OUTPUT_DIRECTORY/db:inst.log
}

stop_dbservices()
{
echo "STOPPING ANY DB SERVICE(S) on " $what        | tee -a ${LOG}

     while read data
     do
        export ORACLE_DB=$(echo $data | awk 'BEGIN{FS=":"}{print $1}')       >/dev/null
        export ORACLE_SID=$(echo $data | awk 'BEGIN{FS=":"}{print $2}')       >/dev/null
        export ORAENV_ASK=NO                                                    >/dev/null
        . oraenv                                                                >/dev/null
        export LOCAL_NODE=`hostname -s`
        if [[ "$server_type" == rac* ]]; then
                     # Stop Any services for $ORACLE_DB on this node
                     if [ $(srvctl status service -d $ORACLE_DB | grep $ORACLE_SID | grep -i "is running" | awk '{ print $2 }' | wc -l) -ne 0 ]
                     then
                        #Loop Through Running Services
                        srvctl status service -d $ORACLE_DB | grep $ORACLE_SID | grep -i "is running" | awk '{ print $2 }' | while read DB_SERV_NAME
                        do
                           echo "srvctl disable service -d $ORACLE_DB -s $DB_SERV_NAME" >> ${LOG}
                           srvctl disable service -d $ORACLE_DB -s $DB_SERV_NAME  >> ${LOG}
                           echo " srvctl stop service -d $ORACLE_DB -s $DB_SERV_NAME -n $LOCAL_NODE" >> ${LOG}
                           srvctl stop service -d $ORACLE_DB -s $DB_SERV_NAME -n $LOCAL_NODE >> ${LOG}
                        done
                     fi
        else
                     # Stop Any services for $ORACLE_DB on this node
                     if [ $(srvctl status service -d $ORACLE_DB | grep -i "is running" | awk '{ print $2 }' | wc -l) -ne 0 ]
                     then
                        echo "srvctl stop service -d $ORACLE_DB" >> ${LOG}
                        srvctl stop service -d $ORACLE_DB  >> ${LOG}
                     fi
        fi
        sleep 5
     done < $OUTPUT_DIRECTORY/db:inst.log
}

stop_db_standalone()
{
echo "STOPPING" $what        | tee -a ${LOG}

                for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                        do
                export ORACLE_SID=${SID}                                                >/dev/null
                export ORAENV_ASK=NO                                                    >/dev/null
               . oraenv                                                                >/dev/null
                echo "Stopping instance " $ORACLE_SID                      | tee -a ${LOG}
                op=`$ORACLE_HOME/bin/sqlplus -s '/ as sysdba'<< EOF
                set echo off;
                shutdown immediate;
EOF`
                        echo "$op"                                                        >> ${LOG};echo "" >> ${LOG}
                        done
        sleep 5
}

stop_mrp()
{
echo "STOPPING" $what           | tee -a ${LOG}
                for SID in `ps -ef | grep mrp | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
                        do
                export ORACLE_SID=${SID}                                                >/dev/null
                export ORAENV_ASK=NO                                                    >/dev/null
               . oraenv                                                                >/dev/null
                echo "Stopping MRP " $ORACLE_SID                      | tee -a ${LOG}
                op=`$ORACLE_HOME/bin/sqlplus -s '/ as sysdba'<< EOF
                set echo off;
                alter database recover managed standby database cancel;
EOF`
                        echo "$op"                                                        >> ${LOG};echo "" >> ${LOG}
                        done
        sleep 5
}


stop_lsnr()
{
echo "STOPPING" $what           | tee -a ${LOG}

        if [[ $server_type = "rac_12c" ]] || [[ $server_type = "rac_11g" ]] || [[ $server_type = "norac_asm11g" ]] || [[ $server_type = "norac_asm12c" ]]
        then
                ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}' | head -1`
        else
                ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s | head -1`
        fi
                export ORAENV_ASK=NO                                                    >/dev/null
               . oraenv                                                                >/dev/null
                        #for lsnr in `ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep | grep $ORACLE_HOME | grep -oP '(?<=tnslsnr )\w+'`
        for lsnr in `ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep | grep $ORACLE_HOME | sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d'`
                        do
                                echo ""                                     >> ${LOG}
                                echo "Stopping listener $lsnr running from OH=${ORACLE_HOME} "             | tee -a ${LOG}
                                echo "lsnrctl stop $lsnr"                   >> ${LOG}
                                echo ""                                     >> ${LOG}
                                lsnrctl stop $lsnr                          >> ${LOG}
                                sleep 10
                        done

        for lsnr in `ps -ef | grep lsnr | grep "^.*${oraowner} " | grep -v grep | sed -n 's/.*\(tnslsnr.*\).*/\1/p' | awk '{ print $2 }' | sed '/^\s*$/d'`
                        do
                                #echo "Stopping listener " $lsnr             | tee -a ${LOG}
                                if [[ -f $OUTPUT_DIRECTORY/pre_config_lsnr.log ]]; then
                                   LSNR_HOME=`cat $OUTPUT_DIRECTORY/pre_config_lsnr.log | grep "^${lsnr}:" | cut -d":" -f2 -s |tail -1`
                                   if [[ $ORACLE_HOME != $LSNR_HOME ]]; then
                                      if [[ -f /etc/oratab ]]; then
                                         ORACLE_SID=`grep $LSNR_HOME /etc/oratab | grep -v "^#" | cut -d":" -f1 -s |tail -1`
                                         export ORAENV_ASK=NO                                                    >/dev/null
                                         if [[ ! -z $ORACLE_SID ]]; then
                                            . oraenv                                                                >/dev/null
                                         fi
                                      fi
                                   fi
                                fi
                                echo ""                                     >> ${LOG}
                                echo "Stopping listener $lsnr running from OH=${ORACLE_HOME} "             | tee -a ${LOG}
                                echo "lsnrctl stop $lsnr"  >> ${LOG}
                                lsnrctl stop $lsnr                 >> ${LOG}
                                echo ""  >> ${LOG}
                        done
        sleep 5
}

stop_agent()
{
echo "STOPPING" $what                   | tee -a ${LOG}

        if [ $(ps -ef | grep emagent | grep "^.*${oraowner} " | grep -v grep | wc -l) -ne 0 ]
        then
                ORACLE_SID=`cat /etc/oratab | awk 'BEGIN{FS=":"}{print $1}' | grep OEM | grep -v "^#"`
                export ORAENV_ASK=NO                                                    >/dev/null;
                if [[ ! -z $ORACLE_SID ]]; then
                . oraenv                                                                >/dev/null
                if [[ -f $ORACLE_HOME/bin/emctl ]]; then
                emctl stop agent                                                        >/dev/null;
                sleep 5
                fi
                fi
        else
                sleep 1
        fi
}

stop_fgl()
{
echo "STOPPING" $what           | tee -a ${LOG}

        if [[ -f /oracle/dba/foglight/fgl_5/bin/fglam ]]; then
           /oracle/dba/foglight/fgl_5/bin/fglam --stop                                  >/dev/null
           sleep 60
        else
           # Search for non standard Foglight bin and execute stop
           if [ "$(ps -ef | grep -i foglight | grep "^.*${oraowner} " | grep -v grep | wc -l)" -eq 0 ]
           then
               echo "Foglight is not running"                                          >> ${LOG} ; echo "" >> ${LOG}
           else
               FOGLIGHTBASE=`ps -ef | grep -i foglight | grep "^.*${oraowner} " | grep -v grep | sed -n 's/.*\(...............................................\/foglight\/fgl_5\).*/\1/p' | awk '{ print $NF }' | tail -1`
               if [[ ! -z $FOGLIGHTBASE ]]; then
                  FOGLIGHTBIN=${FOGLIGHTBASE}/bin/fglam
                  if [[ -f $FOGLIGHTBIN ]]; then
                     $FOGLIGHTBIN --stop  >/dev/null
                     sleep 60
                     echo "$FOGLIGHTBIN -d" > $OUTPUT_DIRECTORY/non_standard_fgl_start.cmd
                     chmod 755 $OUTPUT_DIRECTORY/non_standard_fgl_start.cmd
                  fi
               fi
           fi
        fi
}

stop_portutil()
{
echo -e ' \t ' "STOPPING" $what         | tee -a ${LOG}

        if [ "$(cat $OUTPUT_DIRECTORY/portnum.val | wc -l)" != 0 ]
        then
                while read portnum
                do
                        /opt/portdaemon/bin/stop_port_daemon $portnum       >/dev/null;
                        sleep 10
                done < $OUTPUT_DIRECTORY/portnum.val
        fi
}

stop_osw()
{
echo "STOPPING" $what         | tee -a ${LOG}

        if [ $(ps -ef | grep -i OSW | grep "^.*${oraowner} " | grep -v grep | wc -l) -ne 0 ]
        then
                ps -ef | grep -i OSW | grep "^.*${oraowner} " | grep -v grep| grep -v osw | awk 'BEGIN{FS=" "}{print $(NF-3)" "$(NF-2)" "$(NF-1)" "$(NF-0)}' > $OUTPUT_DIRECTORY/start_osw.cmd
                if [[ -f /oracle/dba/diagtools/oswbb/stopOSWbb.sh ]]; then
                /oracle/dba/diagtools/oswbb/stopOSWbb.sh                >/dev/null
                sleep 5
                fi
                # Non standard path
                OSW_PIDVALUE=`ps -e | grep -i OSWatcher.sh | awk '{print $1}'`
                OSW_BASEPATH=`ls -l /proc/$OSW_PIDVALUE/cwd | awk '{print $NF}'`
                OSWNONSTOP=$OSW_BASEPATH/stopOSWbb.sh
                  if [[ -f $OSWNONSTOP ]]; then
                     $OSWNONSTOP  >/dev/null
                     sleep 1
                  fi
        else
                touch $OUTPUT_DIRECTORY/start_osw.cmd
        fi
}

######################
# DBFS and OGG Support
######################
stop_ogg()
{
echo "STOPPING" $what                   | tee -a ${LOG}

#Initialise any previous gg config files
if [[ -f ${OUTPUT_DIRECTORY}/gg_config.txt ]]; then
       rm ${OUTPUT_DIRECTORY}/gg_config.txt
fi
if [[ -f ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm ]]; then
       rm ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm
fi

# Set Ora env
ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s`
export ORAENV_ASK=NO                                                    >/dev/null;
if [[ ! -z $ORACLE_SID ]]; then
   . oraenv                                                                >/dev/null
else
   ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s| tail -1`
   . oraenv                                                                >/dev/null
fi

ps -ef | grep -v grep | grep "mgr PARAMFILE" | grep "^.*${oraowner} " | sed -n 's/.*\(...................................................................\/....prm \).*/\1/p' | awk '{ print $NF }' | grep -v "\.\.\.\.mgr.prm" | while read GG_MGRPROC
        do

        # Proceed only if Golden Gate Manager is running
        if [[ ! -z $GG_MGRPROC ]]; then

                 GG_HOME=`echo $GG_MGRPROC | sed 's/\/dirprm\/mgr.prm//g' | sed 's/\/dirprm\/MGR.prm//g'`
                #############################

                LOCAL_NODE=`hostname -s`

                # Loop through any GG CRS res and shut them down
                if [[ -f ${ORACLE_HOME}/bin/crsctl ]]; then

                ${ORACLE_HOME}/bin/crsctl stat res -p |grep "^NAME=" | grep -iE 'gg|golden' | grep -v vip | grep -v "\.svc" | grep -v "\.db" | grep -v "ora\." | cut -d"=" -f2 -s | while read CRS_RES_GG
                do
                if [[ ! -z $CRS_RES_GG ]]; then
                   CRS_STATE=`${ORACLE_HOME}/bin/crsctl stat res $CRS_RES_GG | grep "STATE=" | awk '{ print $1 }' | cut -d"=" -f2 -s`
                   if [[ "$CRS_STATE" == "ONLINE" ]]; then
                      echo "${ORACLE_HOME}/bin/crsctl stop res $CRS_RES_GG" >> ${LOG}
                      ${ORACLE_HOME}/bin/crsctl stop res $CRS_RES_GG >> ${LOG}
                      sleep 60
                      # Capture gg start config for each GG_HOME on this node
                      echo "GGCRS@${CRS_RES_GG}:${GG_HOME}:${LOCAL_NODE}" >> ${OUTPUT_DIRECTORY}/gg_config.txt

                      if [[ -n `find ${GG_HOME}/dirprm/ -maxdepth 1 -iname mgr.prm` ]]; then
                         if [[ -f ${GG_HOME}/dirprm/mgr.prm ]]; then
                            grep -i "AUTOSTART " ${GG_HOME}/dirprm/mgr.prm | grep -v "^#" | grep -v "^--" >> ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm
                         else
                            grep -i "AUTOSTART " ${GG_HOME}/dirprm/MGR.prm | grep -v "^#" | grep -v "^--" >> ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm
                         fi
                      fi
                   fi
                fi
                #sleep 5
                done

                fi

                #############################
                # Check to see if GG mgr is still running from this GG_HOME - if so shutdown manually ..
                if [[ -f ${GG_HOME}/dirpcs/MGR.pcm ]]; then

                if [[ -f ${OUTPUT_DIRECTORY}/pre_gg_inst.log ]]; then
                   ORACLE_GG_SID=`cat ${OUTPUT_DIRECTORY}/pre_gg_inst.log | grep "PRE_OGG_DBINST:" | cut -d":" -f3 -s | tail -1`
                fi

                if [[ ! -z $ORACLE_GG_SID ]]; then
                   ORACLE_SID=$ORACLE_GG_SID
                   . oraenv
                else
                  ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s | tail -1`
                  if [[ ! -z $ORACLE_SID ]]; then
                     . oraenv
                  fi
                fi

${GG_HOME}/ggsci << EOF >>${LOG}
stop *
stop mgr !
exit
EOF
                  sleep 60
                  echo "GGNOCRS:${GG_HOME}:${LOCAL_NODE}" >> ${OUTPUT_DIRECTORY}/gg_config.txt
                  if [[ -n `find ${GG_HOME}/dirprm/ -maxdepth 1 -iname mgr.prm` ]]; then
                     if [[ -f ${GG_HOME}/dirprm/mgr.prm ]]; then
                        grep -i "AUTOSTART " ${GG_HOME}/dirprm/mgr.prm | grep -v "^#" | grep -v "^--" >> ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm
                     else
                        grep -i "AUTOSTART " ${GG_HOME}/dirprm/MGR.prm | grep -v "^#" | grep -v "^--" >> ${OUTPUT_DIRECTORY}/pre_stop_gg_autostart.prm
                     fi
                  fi
                fi

        else
                echo " No Oracle Golden Gate processes detected on this host ... " >> ${LOG}
        fi

        done
}


stop_dbfs()
{
echo "STOPPING" $what                   | tee -a ${LOG}

#Initialise any previous dbfs config files
if [[ -f ${OUTPUT_DIRECTORY}/dbfs_config.txt ]]; then
       rm ${OUTPUT_DIRECTORY}/dbfs_config.txt
fi

# Set Ora env
ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep "+ASM" | grep -v onitor | awk 'BEGIN{FS="_"}{print $NF}'`
export ORAENV_ASK=NO                                                    >/dev/null;
if [[ ! -z $ORACLE_SID ]]; then
   . oraenv                                                                >/dev/null
else
   ORACLE_SID=`ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s | tail -1`
   . oraenv                                                                >/dev/null
fi

        ps -ef | grep -v grep | grep "dbfs_client" | grep "^.*${oraowner} " | sed -n 's/.*\(................................................................\/bin\/dbfs_client\).*/\1/p' | awk '{ print $NF }' | grep -v "\.\.\.\.dbfs_client" | sort -u | while read DBFS_PROC
        do

        # Proceed only if DBFS is running
        if [[ ! -z $DBFS_PROC ]]; then
                #Check if this dbfs is setup as a crs resource
                DBFS_HOME=`echo $DBFS_PROC | sed 's/\/bin\/dbfs_client//g'`
                #############################

                LOCAL_NODE=`hostname -s`

                if [[ -f ${ORACLE_HOME}/bin/crsctl ]]; then

                # Loop through any DBFS CRS res and shut them down
                ${ORACLE_HOME}/bin/crsctl stat res -p |grep "^NAME=" | grep -i dbfs | grep -v "\.svc" | grep -v "\.db" | grep -v "ora\." | cut -d"=" -f2 -s | while read CRS_RES_DBFS
                do
                if [[ ! -z $CRS_RES_DBFS ]]; then
                   CRS_STATE=`${ORACLE_HOME}/bin/crsctl stat res $CRS_RES_DBFS | grep "STATE=" | awk '{ print $1 }' | cut -d"=" -f2 -s`
                   if [[ "$CRS_STATE" == "ONLINE" ]]; then
                      echo "DBFS CRS Resource: $CRS_RES_DBFS was detected. Now stopping this resource ..." >>${LOG}
                      echo "${ORACLE_HOME}/bin/crsctl stop res $CRS_RES_DBFS -f" >>${LOG}
                      ${ORACLE_HOME}/bin/crsctl stop res $CRS_RES_DBFS -f >>${LOG}
                      # Capture dbfs start config for each DBFS_HOME on this node
                      echo "DBFSCRS@${CRS_RES_DBFS}:${DBFS_HOME}:${LOCAL_NODE}" >> ${OUTPUT_DIRECTORY}/dbfs_config.txt
                   else
                      echo "" >>${LOG}
                      echo "DBFS CRS Resource: $CRS_RES_DBFS was detected but found to be in $CRS_STATE STATE ... No action taken! " >>${LOG}
                      echo "" >>${LOG}
                   fi
                fi
                sleep 30
                done

                fi

                #############################
                # Check to see if dbfs is still running from this DBFS_HOME - if so shutdown manually ..
                if [ $(ps -ef | grep "^.*${oraowner} " | grep -v grep | grep "${DBFS_HOME}/bin/dbfs_client" | wc -l) -ne 0 ]; then

                   #get DBFS_MOUNT
                   #DBFS_MOUNT=`ps -ef | grep "^.*${oraowner} " | grep -v grep | grep "dbfs_client" | awk '{ print $NF }'`
                   ps -ef | grep "^.*${oraowner} " | grep -v grep | grep "${DBFS_HOME}/bin/dbfs_client" | awk '{ print $NF }' | while read DBFS_MOUNT
                   do

                   if [[ ! -z $DBFS_MOUNT ]]; then
                      echo "" >>${LOG}
                      echo "Will Try to stop dbfs processes manually. Because either dbfs CRS resources not found  OR  DBFS still running even after CRS resource stopped .." >>${LOG}
                      echo "Manually Stopping dbfs mount dir: $DBFS_MOUNT ..." >>${LOG}
                      echo "/bin/fusermount -u -z $DBFS_MOUNT" >>${LOG}
                      /bin/fusermount -u -z $DBFS_MOUNT >>${LOG}
                      echo "" >>${LOG}
                   fi

                   sleep 10
                   # Capture dbfs start config for each GG_HOME on this node
                   if [[ -f ${OUTPUT_DIRECTORY}/dbfs_config.txt ]]; then
                      CHK_DBFSHOME_CONFIGFILE=`grep ":${DBFS_HOME}:" ${OUTPUT_DIRECTORY}/dbfs_config.txt`
                   fi
                   if [[ -z $CHK_DBFSHOME_CONFIGFILE ]]; then
                       echo "DBFSNOCRS:${DBFS_HOME}:${LOCAL_NODE}" >> ${OUTPUT_DIRECTORY}/dbfs_config.txt
                   fi

                   done

                   #Check if any dbfs process still running on this host and kill it ..
                   ps -ef | grep "^.*${oraowner} " | grep -v grep | grep "${DBFS_HOME}/bin/dbfs_client" | awk '{ print $2 }' | while read DBFS_PID
                   do
                       if [[ ! -z $DBFS_PID ]]; then
                          echo "" >>${LOG}
                          echo "No Luck ... Looks like below DBFS OSPID:$DBFS_PID is still Running! ..." >>${LOG}
                          echo "ps -ef | grep -v grep | grep $DBFS_PID | grep dbfs_client   =>" >>${LOG}
                          ps -ef | grep -v grep | grep "$DBFS_PID" | grep dbfs_client  >> ${LOG}
                          echo "" >>${LOG}
                          echo "Will try to KILL it .." >>${LOG}
                          echo "kill -9 $DBFS_PID" >>${LOG}
                          kill -9 $DBFS_PID >> ${LOG}
                          sleep 5
                          echo "Checking if DBFS OSPID:$DBFS_PID has gone ..." >>${LOG}
                          echo "ps -ef | grep -v grep | grep $DBFS_PID   =>" >>${LOG}
                          ps -ef | grep -v grep | grep "$DBFS_PID"  >> ${LOG}
                          echo "" >>${LOG}
                       fi
                   done
                fi

        else
                echo " No dbfs processes detected on this host ... " >/dev/null
        fi

        done
}

fgl_Autosys_blackout()
{
if [[ $OS != "AIX" ]]; then

export EFS_BLK_SCRIPT=/efs/dist/gmrtdba/dbascripts/scripts/common/bl_fgl_autosys_blkout.ksh

#Set Env with any running Instance;
for SID in `ps -ef | grep pmon | sort -k9 | grep "^.*${oraowner} " | grep -v grep | grep -v "+ASM" | grep -v "\-MGMTDB" | grep -v onitor | awk '{ print $NF }' | cut -d"_" -f3,4 -s | tail -1`
do
   export ORACLE_SID=${SID}                                                >/dev/null
   export ORAENV_ASK=NO                                                    >/dev/null
   . oraenv                                                                >/dev/null
done

if [[ ! -z $ORACLE_SID ]]; then

if [[ -f $EFS_BLK_SCRIPT ]]; then

echo "Attempting to apply HOST level BLACKOUTS for Foglight and Autosys via efs script: bl_fgl_autosys_blkout.ksh "                   | tee -a ${LOG}
echo " Foglight_Autosys_blackout Call Starting @ `date` " >> ${LOG}

export BLK_USR=ORA_BL_AUTO
export BLK_PHOST=`hostname -s`
export BLK_HOURS=4
export BLK_TYPE=h

sh $EFS_BLK_SCRIPT << ANSWERS
${BLK_USR}
${BLK_TYPE}
${BLK_PHOST}
${BLK_HOURS}
ANSWERS

echo " Foglight_Autosys_blackout Call Finished @ `date` " >> ${LOG}
echo "" >> ${LOG}

fi

fi

fi
}


#INSERT INTO REPOSITORY DATABASE
#ASSIGNING THE OUTPUT VARIABLES

assign_log()
{
if [ -s $OUTPUT_DIRECTORY/pre_stop_crs.log ]
then
        crs_output=`cat $OUTPUT_DIRECTORY/pre_stop_crs.log`
else
        crs_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_asm.log ]
then
        asm_output=`cat $OUTPUT_DIRECTORY/pre_stop_asm.log`
else
        asm_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_esm.log ]
then
        esm_agent_output=`cat $OUTPUT_DIRECTORY/pre_stop_esm.log`
else
        esm_agent_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dma.log ]
then
        dma_agent_output=`cat $OUTPUT_DIRECTORY/pre_stop_dma.log`
else
        dma_agent_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_lsnr.log ]
then
        listener_output=`cat $OUTPUT_DIRECTORY/pre_stop_lsnr.log`
else
        listener_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dbinst.log ]
then
        db_instance_output=`cat $OUTPUT_DIRECTORY/pre_stop_dbinst.log`
else
        db_instance_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/unidb:inst.log ]
then
        db_unique_output=`cat $OUTPUT_DIRECTORY/unidb:inst.log`
else
        db_unique_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dbopen.log ]
then
        db_open_output=`cat $OUTPUT_DIRECTORY/pre_stop_dbopen.log`
else
        db_open_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dbopenro.log ]
then
        db_openro_output=`cat $OUTPUT_DIRECTORY/pre_stop_dbopenro.log`
else
        db_openro_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dbmount.log ]
then
        db_mount_output=`cat $OUTPUT_DIRECTORY/pre_stop_dbmount.log`
else
        db_mount_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_dbservices.log ]
then
        service_alignment_output=`cat $OUTPUT_DIRECTORY/pre_stop_dbservices.log`
else
        service_alignment_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_mrp.log ]
then
        mrp_output=`cat $OUTPUT_DIRECTORY/pre_stop_mrp.log`
else
        mrp_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_agent.log ]
then
        oem_agent_output=`cat $OUTPUT_DIRECTORY/pre_stop_agent.log`
else
        oem_agent_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_portutil.log ]
then
        port_utility_output=`cat $OUTPUT_DIRECTORY/pre_stop_portutil.log`
else
        port_utility_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_fgl.log ]
then
        foglight_output=`cat $OUTPUT_DIRECTORY/pre_stop_fgl.log`
else
        foglight_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_osw.log ]
then
        os_watcher_output=`cat $OUTPUT_DIRECTORY/pre_stop_osw.log`
else
        os_watcher_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/pre_stop_usb.log ]
then
        usb_output=`cat $OUTPUT_DIRECTORY/pre_stop_usb.log`
else
        usb_output="no_status"
fi

if [ -s /oracle/dba/foglight/fgl_5/bin/fglam ]
then
        fglam_output=`/oracle/dba/foglight/fgl_5/bin/fglam --check-connection`
else
        fglam_output="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/server_type.log ]
then
                instance_type=`cat $OUTPUT_DIRECTORY/server_type.log`
else
                instance_type="no_status"
fi

if [ -s $OUTPUT_DIRECTORY/version_executed_status.log ]
then
                script_version=`cat $OUTPUT_DIRECTORY/version_executed_status.log`
else
                script_version="no_status"
fi

}

insert_repdb()
{
        for what in fgl osw agent portutil lsnr mrp dbinst asm
                do
                        if [ -f $OUTPUT_DIRECTORY/stopped_$what.log ]
                        then
                                if [ "$(cat $OUTPUT_DIRECTORY/stopped_$what.log)" = yes ]
                                then
                                        eval var_$what="success"
                                fi
                                if [ "$(cat $OUTPUT_DIRECTORY/stopped_$what.log)" = no ]
                                then
                                        eval var_$what="failure"
                                fi
                        else
                                        eval var_$what="no_status"
                        fi
                done

                var_dma="na"
                var_esm="na"
                var_crs="na"

        if [[ $server_type = "rac_11g" ]] || [[ $server_type = "norac_asm11g" ]]
        then
                var_lsnr="na"
                var_asm="na"
        elif [[ $server_type = "norac_noasm" ]]
        then
                var_asm="na"
        fi



#PREPARING THE INSERT STATEMENT

if [ $(cat /etc/oratab | grep oracle | grep -v -i asm | grep -v -i crs | grep -v -i oem | grep -v "#" | awk 'BEGIN{FS=":"}{print $1}' | head -1 | wc -l) = 1 ]
then
export ORACLE_SID=`cat /etc/oratab | grep oracle | grep -v -i asm | grep -v -i crs | grep -v -i oem | grep -v "#" | awk 'BEGIN{FS=":"}{print $1}' | head -1`
        export ORAENV_ASK=NO                                                    >/dev/null
        . oraenv                                                                >/dev/null
        $ORACLE_HOME/bin/sqlplus -s OSH_SEH/dbaas_operations1@SUNDVD94 << EOFSTATUS
                set echo off;
                set head off;
                set feedback off;
insert into OSH_SEH.dbss_log (DBSS_ID,
SCRIPT_VERSION,
INSTANCE_TYPE,
STOP_OR_START,
CRS_OR_DB,
SERVER_NAME,
SERVER_TIMESTAMP,
CRS,
ASM,
LISTENER,
DB_INSTANCE,
MRP_PROCESS,
ESM_AGENT,
DMA_AGENT,
OEM_AGENT,
PORT_UTILITY,
FOGLIGHT,
OS_WATCHER,
SENT_MAIL,
CRS_OUTPUT,
ASM_OUTPUT,
LISTENER_OUTPUT,
DB_INSTANCE_OUTPUT,
DB_OPEN_OUTPUT,
DB_OPENRO_OUTPUT,
DB_MOUNT_OUTPUT,
SERVICE_ALIGNMENT_OUTPUT,
MRP_OUTPUT,
ESM_AGENT_OUTPUT,
DMA_AGENT_OUTPUT,
OEM_AGENT_OUTPUT,
PORT_UTILITY_OUTPUT,
FOGLIGHT_OUTPUT,
OS_WATCHER_OUTPUT,
USB_OUTPUT,
FGLAM_OUTPUT,
DB_UNIQUE_OUTPUT)
values (DBSS_LOG_SEQ.nextval,
'$script_version',
'$instance_type',
'stop',
'db',
'$(hostname -f)',
'$timevalue',
'$var_crs',
'$var_asm',
'$var_lsnr',
'$var_dbinst',
'$var_mrp',
'$var_esm',
'$var_dma',
'$var_agent',
'$var_portutil',
'$var_fgl',
'$var_osw',
0,
'$crs_output',
'$asm_output',
'$listener_output',
'$db_instance_output',
'$db_open_output',
'$db_openro_output',
'$db_mount_output',
'$service_alignment_output',
'$mrp_output',
'$esm_agent_output',
'$dma_agent_output',
'$oem_agent_output',
'$port_utility_output',
'$foglight_output',
'$os_watcher_output',
'$usb_output',
'$fglam_output',
'$db_unique_output');
commit;
EOFSTATUS
fi
}


# STOP THE APPROPRIATE SERVICES BASED ON SERVER TYPE

echo "";   echo "Please wait while the services are brought down... ";      echo ""

case $server_type in
        "rac_12c")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "---------------------------> THIS IS A 12c CLUSTERWARE SYSTEM <------------------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent mrp ogg dbfs
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        collect_dbservices
                        # Stop and disable db services before the instance for RAC
                        stop_dbservices
                        stop_db_rac;
                        when=post; what=dbinst; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""

                for what in fgl osw agent mrp ogg dbfs dbinst
                        do
                        stopped_status
                        done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbfs.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;

        "rac_11g")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "---------------------------> THIS IS A 11g CLUSTERWARE SYSTEM <------------------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent mrp ogg dbfs
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        collect_dbservices
                        stop_dbservices
                        stop_db_rac;
                        when=post; what=dbinst; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""

                for what in fgl osw agent mrp ogg dbfs dbinst
                        do
                        stopped_status
                        done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbfs.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        "rac_10g")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "---------------------------> THIS IS A 10g CLUSTERWARE SYSTEM <------------------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent lsnr mrp ogg
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        collect_dbservices
                        stop_db_rac;
                        when=post; what=dbinst; collect_$what; display_pre_post

                        when=pre; what=asm; collect_$what; display_pre_post
                        collect_instancestatus
                        stop_asm_10g;
                        when=post; what=asm; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""

                for what in fgl osw agent lsnr mrp dbinst asm ogg
                        do
                        stopped_status
                        done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_lsnr.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_asm.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        "norac_asm12c")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "-------------------------> THIS IS A NON-RAC SYSTEM BUT WITH ASM 12c <----------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent mrp ogg dbfs lsnr
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        collect_dbservices
                        stop_dbservices
                        stop_db_standalone;
                        when=post; what=dbinst; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""
                for what in fgl osw agent mrp ogg dbfs dbinst lsnr
                do
                        stopped_status
                done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ]&& [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbfs.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_lsnr.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        "norac_asm11g")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "-------------------------> THIS IS A NON-RAC SYSTEM BUT WITH ASM 11g <----------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent mrp ogg dbfs lsnr
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        collect_dbservices
                        stop_db_standalone;
                        when=post; what=dbinst; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""
                for what in fgl osw agent mrp ogg dbfs dbinst lsnr
                do
                        stopped_status
                done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ]&& [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbfs.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_lsnr.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        "norac_asm10g")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "-------------------------> THIS IS A NON-RAC SYSTEM BUT WITH ASM 10g <----------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent lsnr mrp ogg
                        do
                        when=pre; collect_$what; display_pre_post
                stop_$what;
                when=post; collect_$what; display_pre_post
                        done

                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        #stop_db_rac;
                        stop_db_standalone;
                        when=post; what=dbinst; collect_$what; display_pre_post

                        when=pre; what=asm; collect_$what; display_pre_post
                        collect_instancestatus
                        stop_asm_10g;
                        when=post; what=asm; collect_$what; display_pre_post

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""

                        for what in fgl osw agent lsnr mrp dbinst asm ogg
                        do
                        stopped_status
                        done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_lsnr.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_asm.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        "norac_noasm")
        echo "" ;
        echo "---------------------------------------------------------------------------------------"  >> ${LOG};
        echo "--------------------------> THIS IS A NON-RAC & NON-ASM SYSTEM <----------------------- "  >> ${LOG};
        echo "---------------------------------------------------------------------------------------"  >> ${LOG}; echo "" >> ${LOG}

                why=stop;

                #Apply FGL and Autosys Blackout for defined X Hours
                fgl_Autosys_blackout

                for what in fgl osw agent lsnr mrp ogg
                do
                        when=pre; collect_$what; display_pre_post
                        stop_$what;
                        when=post; collect_$what; display_pre_post
                done

                echo "" >> ${LOG}
                if [[ "$RH_VER" == 7.* ]]; then
                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        echo "***********" >> ${LOG}
                        echo "RH7 System .. No db stop will be performed here .." >> ${LOG}
                        echo "oracle_db.service Status: " >> $LOG
                        systemctl status oracle_db.service | grep "Active: "   >> $LOG
                        echo "***********" >> ${LOG}
                else
                        when=pre; what=dbinst; collect_$what; display_pre_post
                        collect_instancestatus
                        stop_db_standalone;
                        when=post; what=dbinst; collect_$what; display_pre_post
                fi
                echo "" >> ${LOG}

                echo "      "

                echo "******************** SUMMARY ********************"
                echo ""

                for what in fgl osw agent lsnr mrp dbinst ogg
                do
                        stopped_status
                done

                if [ "$(cat $OUTPUT_DIRECTORY/stopped_fgl.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_osw.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_agent.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_lsnr.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_mrp.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_dbinst.log)" = yes ] && [ "$(cat $OUTPUT_DIRECTORY/stopped_ogg.log)" = yes ]
                then
                        echo "1" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "SUCCESS : Ready to move to next step"                   | tee -a ${LOG}
                else
                        echo "0" > $OUTPUT_DIRECTORY/bl_stop_flag.log
                        echo ""
                        echo "ATTENTION : Some services didn't stop. Please check"    | tee -a ${LOG}
                fi
                assign_log
                insert_repdb
                echo "**************************************************"

                ;;
        *)
                echo "Invalid Selection : $server_type "
esac


# RENAME THE LOGS


chmod 755 $OUTPUT_DIRECTORY/pre_stop*.log 1> /dev/null 2>&1
chmod 755 $OUTPUT_DIRECTORY/post_stop*.log 1> /dev/null 2>&1
chmod 755 $OUTPUT_DIRECTORY/stopped*.log 1> /dev/null 2>&1
chmod 755 $OUTPUT_DIRECTORY/bl_stop*.log 1> /dev/null 2>&1

chown $oracred $OUTPUT_DIRECTORY/pre_stop*.log 1> /dev/null 2>&1
chown $oracred $OUTPUT_DIRECTORY/post_stop*.log 1> /dev/null 2>&1
chown $oracred $OUTPUT_DIRECTORY/stopped*.log 1> /dev/null 2>&1
chown $oracred $OUTPUT_DIRECTORY/bl_stop*.log 1> /dev/null 2>&1


filename=$(echo $(hostname) | cut -d. -f1)_$(date '+%m%d%Y_%H%M%S')
mv ${LOG} $OUTPUT_DIRECTORY/stop_$filename.log


echo ""
echo ""
echo "****************************************************************************************************";
echo "Please check the detailed STOP report at $OUTPUT_DIRECTORY/stop_$filename.log"
echo "****************************************************************************************************";
echo ""



Ready for Action?

LET'S GO!
Copyright 2026 IT Remote dot com
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram