home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a524 / 40.ddi / oracle.verify < prev    next >
Encoding:
Text File  |  1980-01-08  |  7.9 KB  |  312 lines

  1. :
  2. # $Header: oracle.ver.pp,v 6.6 89/05/15 16:03:59 ksriniva Exp $ oracle.ver.pp 
  3. #
  4. #  oracle.verify
  5. #
  6. #  Master verification script for ORACLE products.
  7. #
  8. #  Usage:  oracle.verify [-d] [-n] [product ... ]
  9. #      The -d option turns on ORACLE_DEFAULT so that no questions will be
  10. #    asked.  The default values will always be used.
  11. #    The -n option turns on NO_CONFIRM which suppresses asking whether
  12. #    individual products should be verified.  All products will be
  13. #    verified.
  14. #    If product names are present on the command line, only those present
  15. #    will be considered for verification.
  16. #
  17. #  It is recommended, but not required, that all other ORACLE VERIFY 
  18. #  scripts be run from this script.
  19. #
  20. #  oracle.verify assumes that the rdbms and all products to
  21. #    be verified have been successfully installed and the
  22. #    database instance is up when oracle.verify is called.
  23. #
  24.  
  25. NETLIBNAME="nsl_s"
  26. PHYS_BLK_SIZE=2048  
  27. VNDR_NETLIBS="-lnsl_s "
  28. CHOWN=/bin/chown
  29. MAKE=make        
  30. ORACLE_LPPROG="/usr/bin/lp"
  31. ORACLE_PAGER="/usr/bin/more"
  32. ORACLE_LPSTAT="/usr/bin/lpstat"
  33.  
  34. #
  35. #  Allow verification/trace to be turned on and off.
  36. #
  37. case "$ORACLE_TRACE" in
  38.     T)    set -x ;;
  39. esac
  40.  
  41. #
  42. #  Print abort message on interupt.
  43. #
  44. trap 'echo "ORACLE Verification Aborted!"; exit' 1 2 3 15
  45.  
  46. #
  47. #  PRODUCTS is a list of all possible products extracted from oracle.key.
  48. #  RDBMS should always be at the beginning of the list.  The user is 
  49. #  prompted to verify the products in the order they occur in this list.
  50. #
  51. #  Note: rdbms.verify uses SQL*Plus demo tables.  In other words,
  52. #        it is assumed that both RDBMS and SQL*Plus are
  53. #        included in every ship tape.
  54. #
  55. ALL_PRODUCTS=`awk -F: '{print $2}' $ORACLE_HOME/install/oracle.key`
  56. ALL_PRODUCTS=`echo $ALL_PRODUCTS | sed -e 's/rdbms//'`
  57. ALL_PRODUCTS="rdbms $ALL_PRODUCTS"
  58.  
  59. PROD=
  60. PRODS=
  61. for i in $* ; do
  62.     case $i in
  63.     -n)    NO_CONFIRM=T ;;
  64.     -d)    ORACLE_DEFAULT=T ; export ORACLE_DEFAULT ;;
  65.     *)    PROD=`echo $ALL_PRODUCTS | tr ' ' '\012' | grep "^$i$"`
  66.         case $PROD in
  67.             "")    echo ""
  68.             echo "Unrecognized product name, ${i}."
  69.             echo "Exiting verification."
  70.             exit 1 ;;
  71.             *)    PRODS="$PRODS $PROD" ;;
  72.         esac ;;
  73.     esac
  74. done
  75. case "$PRODS" in
  76.     "")    PRODUCTS=$ALL_PRODUCTS;;
  77.     *)    PRODUCTS=$PRODS ;;
  78. esac
  79. #  This is to let sub-verify know they do not have to carry out an
  80. #    install.
  81. ORACLE_INSTALL=T
  82. export ORACLE_INSTALL
  83.  
  84. #
  85. # Determine how to suppress newline with echo command.
  86. #
  87. if echo "\c" | grep c >/dev/null 2>&1; then
  88.     N='-n'
  89. else
  90.     C='\c'
  91. fi
  92. export N C
  93.  
  94. #
  95. # Determine whether to use test -x or test -f
  96. #
  97. if test -x "$0" > /dev/null 2>&1 ; then
  98.     TESTX=-x
  99. else
  100.     TESTX=-f
  101. fi
  102. export TESTX
  103.  
  104. #
  105. #  Make sure that the script is being run from $ORACLE_HOME.
  106. #  Check that at least the $ORACLE_HOME/install directory exists.
  107. #
  108. case "$ORACLE_HOME" in
  109.     "")    DIR=`pwd`
  110.     case "`basename $DIR`" in
  111.         install)    cd .. ;;
  112.     esac
  113.     ORACLE_HOME=`pwd` ;;
  114.     *)    cd $ORACLE_HOME ;;
  115. esac
  116.  
  117. if [ ! -d $ORACLE_HOME/install ] ; then
  118.     echo ""
  119.     echo "No ORACLE install directory found in $ORACLE_HOME. "
  120.     echo "Check the following:"
  121.     echo "    . The distribution has been loaded onto disk and is readable."
  122.     echo "    . oracle.verify is being invoked from the directory in which ORACLE"
  123.     echo "      was loaded."
  124.     echo "    . The environment variable ORACLE_HOME is either undefined, or set "
  125.     echo "      to the directory in which ORACLE was loaded."
  126.     echo "Exiting ORACLE verify."
  127.     exit 1
  128. fi
  129. INSTALL_HOME="$ORACLE_HOME/install"; export INSTALL_HOME
  130.  
  131. #
  132. #  Display verify banner and information about default answers.
  133. #
  134. echo "Running ORACLE verify program ..."
  135. echo "
  136. Note:    All questions are followed by a default value in brackets \"[default]\".
  137.     Press RETURN to use this default rather than entering a value.
  138.     Use a \"!\" to run a sub-shell.  When you exit the sub-shell, you will
  139.     be re-prompted with the original default value.
  140. "
  141. echo $N "Press RETURN to continue ...$C"
  142. DEFLT=""; . $INSTALL_HOME/read.sh; WAIT=$RDVAR
  143.  
  144. #
  145. #  Get defaults from $INSTALL_HOME/.defaults if it exists
  146. #
  147. if [ -r $INSTALL_HOME/.defaults ] ; then
  148.     . $INSTALL_HOME/.defaults
  149. fi
  150.  
  151. #
  152. #  Setup ORACLE_HOME, ORACLE_SID and ORACLE_OWNER.
  153. #
  154. echo ""
  155. echo "Checking ORACLE environment variables for verification ..."
  156.  
  157. case "$ORACLE_HOME" in
  158.     "")    DEFLT=`pwd` ;;
  159.     *)    DEFLT="$ORACLE_HOME" ;;
  160. esac
  161. echo ""
  162. echo $N "Enter home directory for ORACLE database: $C"
  163. . $INSTALL_HOME/read.sh; ORACLE_HOME=$RDVAR
  164. export ORACLE_HOME
  165.  
  166. case "$ORACLE_OWNER" in
  167.     "")    DEFLT="${USER-$LOGNAME}"
  168.     case "$DEFLT" in
  169.         root)    DEFLT=oracle ;;
  170.     esac ;;
  171.     *)    DEFLT="$ORACLE_OWNER" ;;
  172. esac
  173. echo ""
  174. echo $N "Enter the login name for the owner of this ORACLE database: $C"
  175. . $INSTALL_HOME/read.sh; ORACLE_OWNER=$RDVAR
  176.  
  177. export ORACLE_OWNER
  178.  
  179. case $ORACLE_SID in
  180.     "")    DEFLT=$ORACLE_OWNER ;;
  181.     *)    DEFLT=$ORACLE_SID ;;
  182. esac
  183. echo ""
  184. echo $N "Enter string for ORACLE system identifier: $C"
  185. . $INSTALL_HOME/read.sh; ORACLE_SID=$RDVAR
  186. export ORACLE_SID
  187.  
  188. #
  189. #  Make the defaults file
  190. #
  191. cat <<END > $INSTALL_HOME/.defaults
  192. LOG="$LOG"
  193. ORACLE_HOME="$ORACLE_HOME"
  194. ORACLE_SID="$ORACLE_SID"
  195. ORACLE_OWNER="$ORACLE_OWNER"
  196. END
  197. chmod 666 $INSTALL_HOME/.defaults
  198.  
  199. #
  200. #  Adjust PATH.
  201. #
  202. # This ensures that the path begins with ":"
  203. PATH=`echo $PATH | sed -e '/^[^:]/s/^/:/' -e 's/^:\.:/:/'`
  204. # This ensures that only one occurrance of "$ORACLE_HOME/bin" is in PATH
  205. STRIP=`echo $ORACLE_HOME/bin | sed "s./.\\\\\/.g"`
  206. STRIP=$STRIP"[:]"
  207. PATH=:$ORACLE_HOME/install:$ORACLE_HOME/bin`echo $PATH | sed "/${STRIP}/s///g"`
  208. export PATH
  209.  
  210. #
  211. #  Setup verification log file.
  212. #
  213.  
  214. LOG=$ORACLE_HOME/install/verify.log
  215. echo "ORACLE VERIFICATION DIAGNOSTICS FILE" > $LOG
  216. echo "" >> $LOG
  217. chmod 666 $LOG
  218. export LOG
  219.  
  220. echo ""
  221. echo "BEGINNING ORACLE VERIFICATION.  "
  222. echo ""
  223. echo "The oracle.verify program assumes that all products to be verified"
  224. echo "have been successfully installed and that the database is currently up."
  225.  
  226.     while : ; do
  227.         echo $N "OK to continue (Q to Quit) ? $C"
  228.         DEFLT="Y"; . $INSTALL_HOME/read.sh; OK=$RDVAR
  229.             case "$OK" in
  230.             Y|y)    break ;;
  231.             N|n|Q|q)  echo "ORACLE Verification Aborted!"
  232.                   exit 1;;
  233.             *)        echo "Enter Y, N, or Q please..." ;;
  234.             esac
  235.     done
  236.  
  237. echo "Log of the whole verification process can be found in"
  238. echo "   $ORACLE_HOME/install/verify.log"
  239.  
  240. echo ""
  241. echo $N "Working .$C"        #Wait message
  242. echo $N ".$C"            #Wait message
  243.  
  244. VERIFIED=""
  245. for PROD in $PRODUCTS    
  246. do
  247.     PROD_HOME=${ORACLE_HOME}/$PROD
  248.     PROD_INFO=`fgrep :$PROD: $ORACLE_HOME/install/oracle.key`
  249.     PROD_NAME=`echo $PROD_INFO | awk -F: '{print $3}'`
  250.     SCRIPT=$ORACLE_HOME/`echo $PROD_INFO | awk -F: '{print $4}'`
  251.     script=`basename $SCRIPT`
  252.     SCRIPT=$SCRIPT.verify
  253.  
  254.     if [ -d "$PROD_HOME" ]; then
  255.         echo ""
  256.  
  257.     case $NO_CONFIRM in
  258.         "")    while : ; do
  259.         echo $N "Verify $PROD_NAME (Q to Quit) ? $C"
  260.         DEFLT="Y"; . $INSTALL_HOME/read.sh; VERIFY=$RDVAR
  261.             case "$VERIFY" in
  262.             Y|y|N|n|Q|q)    break ;;
  263.             *)        echo "Enter Y, N, or Q please..." ;;
  264.             esac
  265.         done ;;
  266.         T)    echo "" >> $LOG
  267.         echo "Verifying $PROD_NAME ..." >> $LOG
  268.         echo "" >>$LOG;;
  269.     esac
  270.  
  271.         if [ "$VERIFY" = y -o "$VERIFY" = Y -o "$NO_CONFIRM" = T ] ; then
  272.             chmod 554 $PROD_HOME/install/* > /dev/null 2>&1
  273.             if [ $TESTX $SCRIPT ]; then
  274.            case "$SYSTEM_PASS" in
  275.         "")    echo ""
  276.             echo $N "Enter current SYSTEM account password: $C"
  277.             DEFLT="manager"
  278.             . $INSTALL_HOME/read.sh; SYSTEM_PASS=$RDVAR
  279.             SYSTEM_PASS="system/${SYSTEM_PASS}"
  280.             export SYSTEM_PASS ;;
  281.            esac
  282.     
  283.                  $SCRIPT
  284.         echo "        ######   Finished running ${script}.verify   ######" >> $LOG
  285.         echo "    # Please check $PROD_HOME/install/${script}_ver.out #" >> $LOG
  286.         echo "" >> $LOG
  287.         echo "" >> $LOG
  288.         echo "" >> $LOG
  289.  
  290.         VERIFIED="$VERIFIED $PROD"
  291.             else
  292.                 echo "Executable verify script for $PROD_NAME not found."
  293.                 echo "Executable verify script for $PROD_NAME not found." >> $LOG
  294.         echo "" >> $LOG
  295.         echo "" >> $LOG
  296.         echo "" >> $LOG
  297.             fi
  298.     else
  299.         case "$VERIFY" in
  300.         q|Q)    sync ; exit 0 ;;
  301.         esac
  302.     fi
  303.     fi
  304. done
  305.  
  306. echo "
  307. Done."
  308. sync;sync;sync
  309. exit 0
  310.