#!/bin/sh # # root specific configuration task for RAC homes # This script updates the dba group of Oracle RAC homes with Oracle EVM # SILENT=%SILENT% RAC_ORA_CRS_HOME=%ORA_CRS_HOME% RAC_DBA_GROUP=%ORA_DBA_GROUP% if [ -z "$ECHO" ]; then ECHO=/bin/echo; fi if [ -z "$AWK" ]; then AWK=/bin/awk; fi if [ -z "$CP" ]; then CP=/bin/cp; fi if [ -z "$RMF" ]; then RMF="/bin/rm -f"; fi if [ -z "$GREP" ]; then GREP=/bin/grep; fi if [ -z "$ID" ]; then ID=/usr/bin/id; fi usage() { printf "Usage:" printf "$0 [-silent]" printf " [-crshome ]" printf " [-dbagroup ]" } validateInput() { ##validates if any value is assigned to the script variables valid=`$ECHO $1 | $AWK '/^%/ { print "false"; }'` if [ "$valid" = "false" ]; then $ECHO "No value set for the CRS parameter $2. Use parameter file to set values"; usage; return 1; fi return 0; } # This script is intended to be run by root. RUID=`$ID|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'` if [ ${RUID} != "root" ];then $ECHO "You must be logged in as root to run $0." $ECHO "Log in as root and restart $0 execution." exit 1 fi USER_ARGS=$* while [ $# -gt 0 ]; do if [ $1 = "-silent" ]; then SILENT=1; elif [ $1 = "-crshome" ]; then if [ $# -ge 2 ]; then RAC_ORA_CRS_HOME=$2; shift; else usage; exit 2 fi elif [ $1 = "-dbagroup" ]; then if [ $# -ge 2 ]; then RAC_DBA_GROUP=$2; shift; else usage; exit 2 fi else usage; exit 2 fi shift; done validateInput $RAC_ORA_CRS_HOME "RAC_ORA_CRS_HOME" || { $ECHO $?; exit 1; } validateInput $RAC_DBA_GROUP "RAC_DBA_GROUP" || { $ECHO $?; exit 1; } CRS_HOME=$RAC_ORA_CRS_HOME export CRS_HOME CH=$ORA_CRS_HOME EVM_CONF_DIR=$CRS_HOME/evm/admin/conf if $CAT $EVM_CONF_DIR/evm.auth | $AWK '/group=/ {print}' | $GREP $RAC_DBA_GROUP > /dev/null 2>&1; then $ECHO "" else $CAT $EVM_CONF_DIR/evm.auth | $AWK '/group=/ { len=length(); str=$0; grpind=index(str, "group"); substr1=substr(str, 1, grpind-1); substr2=substr(str, grpind, len-grpind+1); printf("%%s%%s, %%s\n", substr1, "group=%ORA_DBA_GROUP%", substr2); next; } { print; }' > $EVM_CONF_DIR/evm.auth.$$ status=$? if [ $status ]; then $CP $EVM_CONF_DIR/evm.auth.$$ $EVM_CONF_DIR/evm.auth fi $RMF $EVM_CONF_DIR/evm.auth.$$ fi