[HPADM] RE: Script Question

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

  • Next message: Erik Platzbecker: "[HPADM] what extra driver(s) for a C7474 ultra SCSI card ?"
    Date: Fri, 14 May 2004 10:33:58 -0400
    To: "Paveza, Gary" <gary.paveza@AIG.COM>, "'Hpux-Admin (E-mail)" <hpux-admin@dutchworks.nl>
    
    

    Figured this out, playing around. Thanks for all the responses.

    What I did was put this in a config file:
    /dfas/cfg/imagestore.cfg
    export ENVIRONMENT=/prod/oracle/scoccp1u
    export OMDBA_HOME=/home/dcount/imgobj_scripts
    export ORACLE_HOME=/u01/app/oracle/product/8.1.6
    HPFILE=/$2/prod/wang/oix/$1

    In the script:

    I pass the config file as follows with the variables from the script.

    . imagestore.cfg $imagestore $filename
    echo $HPFILE >> /tmp/test

    Thanks,

    Dan

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

    Maybe I'm not understanding, but in your config file:

    EXPORTFILE="/$filevolume/prod/wang/oix/$imagestore
    -anon=65535,root=fcohpd:fcosun06,access=fcohpd:fcosun06"

    -----Original Message-----
    From: COUNTERMAN, DANIEL (CONTRACTOR) [mailto:DANIEL.COUNTERMAN@DFAS.MIL]
    Sent: Friday, May 14, 2004 10:22 AM
    To: Paveza, Gary
    Cc: 'Hpux-Admin (E-mail); KENNEBECK, JEFFREY (CONTRACTOR)
    Subject: RE: Script Question

    Here is the line I am referring to:

    echo "/$filevolume/prod/wang/oix/$imagestore
    -anon=65535,root=fcohpd:fcosun06,access=fcohpd:fcosun06" >> /etc/exports

    I want to change this line in the script to something like this:

    echo "$EXPORTFILE" >> /etc/exports

    I want to put the "/$filevolume/prod/wang/oix/$imagestore
    -anon=65535,root=fcohpd:fcosun06,access=fcohpd:fcosun06" within the config
    file, so that if any servers are added or changed, all I need to do is
    change the config file, rather than the script, and pass the filevolume and
    imagestore variables within the script to the config file. Do you have an
    answer for that?

    Thanks,

    Dan

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

    Your colors don't come through, but here is what I would do.

    For any variable that you want to control in a configuration file, write it
    to that configuration file - and remove setting it from your script.

    As one of the first things your script does, it should source that
    configuration script (using the .<space><filename> syntax. That way your
    main script is the same across all servers, you just need to modify the
    configuration file.

    -----Original Message-----
    From: COUNTERMAN, DANIEL (CONTRACTOR) [mailto:DANIEL.COUNTERMAN@DFAS.MIL]
    Sent: Friday, May 14, 2004 10:06 AM
    To: Paveza, Gary
    Cc: 'Hpux-Admin (E-mail); KENNEBECK, JEFFREY (CONTRACTOR)
    Subject: Script Question

    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: Erik Platzbecker: "[HPADM] what extra driver(s) for a C7474 ultra SCSI card ?"

    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)