[HPADM] Script Question

From: COUNTERMAN, DANIEL (CONTRACTOR) (DANIEL.COUNTERMAN_at_DFAS.MIL)
Date: 05/14/04

  • Next message: COUNTERMAN, DANIEL (CONTRACTOR): "[HPADM] RE: Script Question"
    Date: Fri, 14 May 2004 10:05:40 -0400
    To: "Paveza, Gary" <gary.paveza@AIG.COM>
    
    

    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)
    

  • Next message: COUNTERMAN, DANIEL (CONTRACTOR): "[HPADM] RE: Script Question"

    Relevant Pages

    • Re: Bash script / wget fans!
      ... > have the script set a flag so the first time it is run, ... called, and if the config file isn't newer than the main script, ... > up with the line of thought, for a hypothetical dumb consumer, ...
      (comp.os.linux.misc)
    • Re: [Full-disclosure] reduction of brute force login attempts via SSHthrough iptables --
      ... Anyhow its no problem at all to modify, so if you dont like it, just dont use it. ... on a lame script like this as long as it WORKS and is not insecure. ... echo "~ sorting out ip by ip" ... # echo "not enough failed logins, probably no attack from: ...
      (Full-Disclosure)
    • Ripping Tapes with Linux--How To
      ... the full script is located in the BASH ... My tape player is a portable style journalist's recorder from the ... The most irritating part of the recording process was setting the ... echo Starting de-noise procedure to file $TMP1 ...
      (comp.os.linux.misc)
    • Re: Linux Backup with Modification Date Filter?
      ... I wrote a bash script that acts as a wrapper to rsnapshot which first ... generates a modification-date filter, ...
      (comp.os.linux.misc)
    • Re: Command Script variable value lost during execution
      ... The value of RC_ver is numeric but ECHO would return it numeric or not... ... I checked ERRORLEVEL at the end of the script and it was 0 but again ... ECHO RoboCopy version xxx%RC_Ver%yyy ... CALL:GetRCVer RoboCopy.exe /Path ...
      (microsoft.public.windows.server.scripting)