[HPADM] Script Question

From: COUNTERMAN, DANIEL (CONTRACTOR) (DANIEL.COUNTERMAN@DFAS.MIL)
Date: Fri May 14 2004 - 10:05:40 EDT


Thank you for replying to my question.

The script works, I am just trying to make this easy to implement across multiple servers, so by changing the configuration file, this will accomplish this, so please take a look and let me know how I can pass the lines in RED, which are server specific to a configuration file.

Note the question below - looking for something to replace the lines in RED within a config file if possible.

Here is the script:

#!/bin/sh

################################################################################
#
# SCRIPT: create_imgobj
#
# PURPOSE: Create new Image and Object Stores
#
#
# COMMENTS:
#
# DATE SE Description of Change
#
################################################################################
# check if correct user id
################################################################################

umask 0
clear
if [ $LOGNAME != "root" ]
        then echo "script processing must be executed by root not $LOGNAME."

        exit 0
        fi

################################################################################
# read variables
################################################################################

if [ -f /dfas/cfg/check.cfg ]; then
        . /dfas/cfg/check.cfg
else
        echo "ERROR: check.cfg MISSING.\n"
fi

if [ -f /home/dcount/imgobj_scripts/imagestore.cfg ]; then
        . /home/dcount/imgobj_scripts/imagestore.cfg
else
        echo "ERROR: imagestore.cfg MISSING.\n"
        exit 1
fi
################################################################################

################################################################################
# main section
################################################################################
# subroutines come first than main for script execution
# to work properly
#
#################################################################
## Create New Image Stores ##
## 1) Shutdown Tier1 ##
## 2) Create the new Image Store directory structure ##
## 3) Set Ownership and Access Rights ##
## 4) Touch the .NFS file within new structure ##
## 5) Add to /prod/tier1/config/hpfilesys.cfg ##
## 6) Add to /etc/exports file and export the new volume ##
## 7) Create linkpoint within /prod/wang/oix ##
## 8) Modify and run sql script to add image store to Oracle ##
## t_file_volume table ##
## 9) Restart Tier1 ##
#################################################################

new_imagestore()
{
  clear
  echo "Image Stores Maintenance - New Image Store"
  echo
  echo "Shutting down Tier1"
  T1 stop
  echo
  clear
  echo "Creating /$filevolume/prod/wang/oix/is$imagestore"
  mkdir -p /$filevolume/prod/wang/oix/$imagestore
  echo
  echo "Setting ownership using chown -R prod:prod /$filevolume"
  chown -R prod:prod /$filevolume
  echo
  echo "Setting access using chmod -R ug+rwx /$filevolume/prod"
  chmod -R ug+rwx /$filevolume/prod
  echo
  echo "Setting access using chmod -R o+rx /$filevolume/prod"
  chmod -R o+rx /$filevolume/prod
  echo
  echo "Setting access using chmod -R ugo+rwx /$filevolume/prod/wang/oix/$imagestore"
  chmod -R ugo+rwx /$filevolume/prod/wang/oix/$imagestore
  echo
  echo "Touching .NFS within Image Store"
  touch /$filevolume/prod/wang/oix/$imagestore/.NFS
  chown prod:prod /$filevolume/prod/wang/oix/$imagestore/.NFS
  chmod 664 /$filevolume/prod/wang/oix/$imagestore/.NFS
  echo
  echo "Press enter to continue"
  read x
  clear
  echo
  echo "Updating /prod/tier1/config/hpfilesys.cfg"
  echo

  server=`hostname`

  if [ $server = "fcohpc" ]
  then
  cp -p /prod/tier1/config/hpfilesys.cfg /prod/tier1/config/hpfilesys.`date +%m%d%Y`
  cp -p /etc/exports /etc/exports.`date +%m%d%Y`
  echo "Adding the following line:"
 echo "/prod/wang/oix/$imagestore `hostname` $imagestore 0 DIV=JN" >> /prod/tier1/config/hpfilesys.cfg
  echo
  echo "/$filevolume/prod/wang/oix/$imagestore -anon=65535,root=fcohpd:fcosun06,access=fcohpd:fcosun06" >> /etc/exports
  echo
  $ORACLE_HOME/bin/sqlplus ${USERLOGIN} @${OMDBA_HOME}/max_dow_entry.sql
  integer y=`cat /tmp/maxdow.doc`
  let z=$y+1
  $ORACLE_HOME/bin/sqlplus ${USERLOGIN} @${OMDBA_HOME}/add_image_uat.sql $imagestore $z
  echo
  echo "Displaying entries added to t_file_volume: "
  cat /tmp/addimage_uat.doc
  echo
  echo
  echo "Displaying line added for hpfilesys.cfg and exports files"
  tail -1 /prod/tier1/config/hpfilesys.cfg
  tail -1 /etc/exports
  exportfs -a
  echo
  fi

  echo "Press enter to continue"
  read x
  clear
  echo
  echo "Creating linkpoint within /prod/wang/oix"
  echo
  echo "ln -s /$filevolume/prod/wang/oix/$imagestore $imagestore"
  ln -s /$filevolume/prod/wang/oix/$imagestore $imagestore
  echo
  echo
  echo "Press enter to continue"
  read x
  clear
  echo
  echo "Image Store Review"
  echo
  echo "Review volume for correct structure, ownership, and access"
  echo
  echo "/$filevolume/prod/wang/oix/$imagestore"
  ls -lad /$filevolume
  ls -lad /$filevolume/prod/wang
  ls -lag /$filevolume/prod/wang/oix/$imagestore
  echo
  echo "Press enter to continue"
  read x
  clear
  echo
  echo "Restarting Tier1"
  T1 start

} # End of subroutine_1

update_imagestore()
{
  # Enter script commands to execute
  echo "Start of subroutine_2, called by mainroutine_2"
  echo
  clear
  echo "Updating Image Store (Replace)"
  echo
  echo "Shutting down Tier1"
  T1 stop
  echo
  clear
  server=`hostname`
  if [ $server = "fcohpc" ]
  then
  cp -p /prod/tier1/config/hpfilesys.cfg /prod/tier1/config/hpfilesys.`date +%m%d%Y`
  echo
  echo "Displaying imagestore being turned on in hpfilesys.cfg: "
  /home/dcount/imgobj_scripts/turnon $newimage
  echo
  cat /home/dcount/imgobj_scripts/turnedon
  mv /home/dcount/imgobj_scripts/turnedon /prod/tier1/config/hpfilesys.cfg
  echo
  echo
  echo "Press enter to continue"
  read x
  echo "Displaying imagestore being turned off in hpfilesys.cfg: "
  /home/dcount/imgobj_scripts/turnoff $oldimage
  echo
  cat /home/dcount/imgobj_scripts/turnedoff
  mv /home/dcount/imgobj_scripts/turnedoff /prod/tier1/config/hpfilesys.cfg
  echo
  echo
  echo "Press enter to continue"
  read x
  echo
  $ORACLE_HOME/bin/sqlplus ${USERLOGIN} @${OMDBA_HOME}/update_image_uat.sql $newimage $oldimage
  echo
  echo "Displaying entries updated to t_file_volume: "
  cat /tmp/updateimage_uat.doc
  echo
  echo
  echo "Press enter to continue"
  read x
  echo
  fi
  clear
  echo
  echo "Restarting Tier1"
  T1 start

} # End of subroutine_2

delete_imagestore()
{
  # Enter script commands to execute
  clear
  echo "Delete Image Store"
  echo
  sleep 2
  echo "Shutting down Tier1"
  T1 stop
  echo
  clear
  echo
  server=`hostname`
  if [ $server = "fcohpc" ]
  then
  cp -p /prod/tier1/config/hpfilesys.cfg /prod/tier1/config/hpfilesys.`date +%m%d%Y`
  echo "Displaying imagestore being turned off in hpfilesys.cfg: "
  /home/dcount/imgobj_scripts/turnoff $oldimage
  echo
  cat /home/dcount/imgobj_scripts/turnedoff
  mv /home/dcount/imgobj_scripts/turnedoff /prod/tier1/config/hpfilesys.cfg
  echo
  echo "Press enter to continue"
  read x
  echo
  $ORACLE_HOME/bin/sqlplus ${USERLOGIN} @${OMDBA_HOME}/delete_image_uat.sql $oldimage
  echo
  echo "Displaying entries deleted from t_file_volume: "
  cat /tmp/deleteimage_uat.doc
  echo
  echo
  echo "Press enter to continue"
  read x
  echo
  fi
  clear
  echo
  echo "Restarting Tier1"
  T1 start

} # End of subroutine_3

########################################################
## Image Store Processing ##
########################################################

mainroutine_1()
{

# Enter script commands to execute
clear
echo "Image Store Creation Process \n"
echo
echo "Enter Filevolume to use (fco######)\n"
read filevolume
echo "Enter Image Store to use (is######)\n"
read imagestore
echo
echo "Image Store will be created as: \n"
echo "/$filevolume/prod/wang/oix/$imagestore"
echo
echo "Do you want to proceed? \n"
echo "Enter 'Y' to proceed, anything else to abort.\n"
read a
if [ "$a" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 99
else
        echo "Calling new_imagestore routine"
        echo
        new_imagestore
fi

echo

echo "Image Store Processing complete."
echo
echo "Do you need to add another Image Store?"
echo "Enter 'Y' to proceed, anything else to abort.\n"

read check_prompt
check_prompt=$check_prompt
if [ "$check_prompt" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 0

else
        mainroutine_1

fi

} # End of mainroutine_1

#

mainroutine_2()
{

# Enter script commands to execute
clear
echo "Image Store Creation Process \n"
echo
echo "Enter Image Store to replace (oldimage) (is######)\n"
read oldimage
echo "Enter Image Store to update (newimage) (is######)\n"
read newimage
echo
echo "Image Store $oldimage will be updated with $newimage: \n"
echo
echo "Do you want to proceed? \n"
echo "Enter 'Y' to proceed, anything else to abort.\n"
read a
if [ "$a" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 99
else
        echo "Calling update_imagestore routine"
        echo
        update_imagestore
fi

echo

echo "Image Store Processing complete."
echo
echo "Do you need to add another Image Store?"
echo "Enter 'Y' to proceed, anything else to abort.\n"

read check_prompt
check_prompt=$check_prompt
if [ "$check_prompt" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 0

else
        mainroutine_2

fi

} # End of mainroutine_2

mainroutine_3()
{

# Enter script commands to execute
clear
echo "Image Store Deletion Process \n"
echo
echo "Enter Image Store to delete (is######)\n"
read oldimage
echo
echo "Image Store $oldimage will be deleted: \n"
echo
echo "Do you want to proceed? \n"
echo "Enter 'Y' to proceed, anything else to abort.\n"
read a
if [ "$a" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 99
else
        echo "Calling delete_imagestore routine"
        echo
        delete_imagestore
fi

echo

echo "Image Store Deletion complete."
echo
echo "Do you need to delete another Image Store?"
echo "Enter 'Y' to proceed, anything else to abort.\n"

read check_prompt
check_prompt=$check_prompt
if [ "$check_prompt" != "Y" ] && [ "$a" != "y" ]
then
        echo
        echo "Aborted."
        exit 0

else
        mainroutine_3

fi

} # End of mainroutine_3

# start of main script occurs here
datadir="/prod/wang/oix/"
HOST=`hostname`
clear
echo
echo "Image/Object Store Maintenance"
echo
echo "Select:"
echo " 1) Add New Image Store"
echo " 2) Update Image Store (Replace)"
echo " 3) Delete Image Store"
echo " 4) Exit ?\c"
read select_one

case $select_one in

        "1")
        mainroutine_1
        exit 0
        ;;

        "2")
        mainroutine_2
        exit 0
        ;;

        "3")
        mainroutine_3
        exit 0
        ;;

        "4")
        exit 0
        ;;

        "-*")
        exit 1
        ;;
esac

-----Original Message-----
From: Paveza, Gary [mailto:gary.paveza@AIG.COM]
Sent: Friday, May 14, 2004 9:44 AM
To: COUNTERMAN, DANIEL (CONTRACTOR)
Subject: RE: [HPADM] Script Question

Source the configuration file within your script.

. <config file>
Note the space between . and config file.

That will make all variables in the config file available to your script.

-----Original Message-----
From: COUNTERMAN, DANIEL (CONTRACTOR) [mailto:DANIEL.COUNTERMAN@DFAS.MIL]
Sent: Friday, May 14, 2004 9:35 AM
To: 'Hpux-Admin (E-mail)
Cc: UNIX-WIZ (E-mail)
Subject: [HPADM] Script Question

All,

        I am trying to see if it is possible to use a configuration file
within a script and pass a parameter to the configuration file.

Here is an example of what I am trying to do:

In /dfas/cfg/imagestore.cfg:
export ENVIRONMENT=/prod/oracle/scofvp1p
export OMDBA_HOME=/shared/home/dcounter/scripts/imgobj_scripts
export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
EXPORTFILE="/$1/prod/wang/oix/$2
-anon=65535,root=fcohp16:fcohp16f:fcosun01:fcosun01e:fcosun04e"

In the script I want to be able to pass the variable filevolume to $1 and
imagestore to $2 in the configuration file and use EXPORTFILE as the
variable throughout the script. This will be used on multiple servers, so I
want to be able to just change the configuration file and not the script
which would contain the hardcoded servers going to the /etc/exports file.

Is this possible? Or does anyone have an idea of how I can do something
like this?

Thanks,

Dan

--
             ---> Please post QUESTIONS and SUMMARIES only!! <---
        To subscribe/unsubscribe to this list, contact majordomo@dutchworks.nl
       Name: hpux-admin@dutchworks.nl     Owner: owner-hpux-admin@dutchworks.nl
 
 Archives:  ftp.dutchworks.nl:/pub/digests/hpux-admin       (FTP, browse only)
            http://www.dutchworks.nl/htbin/hpsysadmin   (Web, browse & search)


This archive was generated by hypermail 2.1.7 : Sat Apr 12 2008 - 11:02:41 EDT