ADSM-L

Re: Perl and Scripts

2000-07-17 13:16:35
Subject: Re: Perl and Scripts
From: Bart Colbert <Bart.Colbert AT RAYONIER DOT COM>
Date: Mon, 17 Jul 2000 13:16:35 -0400
John Schnieder wrote:
>We have written some scripts in perl/cgi that create a web-based
manager/operator interface for TSM and ADSM

All,

 Sounds like a good package. If anyone needs to make some features for a
web server like what John descibes I am including a simple example (Query
of library volumes). HTML & CGI. All of our storage pools are in tape
libraries and we found a need to develop interfaces designed specifically
for such.

Goodday,
Bart


[[html document]]

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"><meta name="GENERATOR" content="AIX (UNIX) Visual
Editor (VI)">
   <meta name="COMPANY" content="Rayonier, Inc."
   <meta name="ADMIN" content="Bart G. Colbert"
   <meta name="VERSION" content="1.0 09/01/1999"
</head>
<body text="#000000" bgcolor="#006600" link="#0000EE" vlink="#551A8B"
alink="#FF0000">

<center>
<font color="#FFFFFF">
<font size=+1>
ADSM Query library volumes
</font>
</font>
<br>
<br>
<font color="#FFFFFF">
<font size=+0>
Select the library name from list
</font>
</font>
<form METHOD=POST ACTION="cgi-bin/adsmqlibv">
<select type=LIST name=LIB_NAME><option>IBM7331 <option>IBM7337
<option>IBM7337A
</select>
<br>
<br>
<input TYPE=SUBMIT VALUE="Press here to display current status">
</center>

</body>
</html>



[[cgi-bin korn shell script]]

#!/bin/ksh
# Korn Shell Script
#
# NAME:adsmqlibv
# DESC:CGI Shell Script for Query ADSM library volumes
# AUTH:Bart G. Colbert
# DATE:09/01/1999
#
VERSION="1.1"
ADSM_HOME="/usr/lpp/adsm/bin"
#
# REVISIONS:
# *) 09/12/1999 Bart Colbert V1.1
#    -Changed to read form values from select list.
#
echo Content-type: text/plain
export $(/usr/local/apache/cgi-bin/cgiparse -form)
echo
echo
"
*****************************************************************************

*******"
echo "** ADSM Command: Query library volumes"
echo "** Storage pool name: $(echo $FORM_LIB_NAME | tr -d "'")"
echo "** Date: $(date)"
echo
"
*****************************************************************************

*******"
echo
#
# INIT ANY LOCAL VAR TYPES
#
typeset -i COUNT
#
# ASSIGN VOLS A STRINGS ARRAY FROM THE VOLUMES THAT ARE IN THE LIBRARY
#
LIB_NAME=$(echo $FORM_LIB_NAME | tr -d "'")
VOLS=$($ADSM_HOME/dsmadmc -id=admin -password=$DSMADMCPASSWD q libv
$LIB_NAME
| grep $LIB_NAME | grep -v Server | awk '{print $2}')
#
# SEPARATOR
#
echo "  TAPE  SLOT     MBYTES  PCTUTIL   STATUS     LASTW
STGPOOL
    ACCESS"
echo
"
-----------------------------------------------------------------------------
-------"
-------"
#
#
# BEGIN FOR LOOP ON VOLS ARRAY
#
for VOL in $VOLS
do
#
# USE COUNT TO DISPLAY A SEPARATOR EVERY THREE LINES
#
COUNT=$COUNT+1
#
# ASSIGN THE q libv LINE OF VOL TO $CURRENTVOL
#
CURRENTVOL=$($ADSM_HOME/dsmadmc -id=admin -password=$DSMADMCPASSWD q libv
$LIB_NAME | grep $VOL)
#
# IF THE CURRENTVOL DOS NOT HAVE DATA
#
if [ `echo $CURRENTVOL | awk '{print $5}'` != NULL ];
        then
        #
        # FORMAT AND ASSIGN STRING1 THE LINE FOR VOL
        #
        STRING1=`echo $CURRENTVOL | awk '{printf "%s  %d ",$2,$5}'` #
# ELSE IF THE CURRENTVOL HAS DATA
#
else
        #
        # FORMAT AND ASSIGN STRING1 THE LINE FOR VOL
        #
        STRING1=`echo $CURRENTVOL | awk '{printf "%s  %d ",$2,$4}'` #
# END IF THE CURRENTVOL SHOWS DATA FORMAT AND ASSIGN STRING1
#
fi
#
# ASSIGN THE q vol LINE OF VOL TO $CURRENTVOL
#
STRING2=$($ADSM_HOME/dsmadmc -id=admin -password=$DSMADMCPASSWD
-tabdelimited q vol $VOL format=detailed | grep [../../..] | grep -v erver
| grep -v Copyright | grep -v ersion | grep -v return | awk '{printf " %s
| grep -v Copyright | grep -v ersion | grep -v return | awk '{printf " %s
%s %s %s %s
%s",$4,$5,$6,$14,$2,$7}')
#
# COMBINE STRING1 AND STRING2 INTO STRING3
#
STRING4=$STRING1$STRING2# # USE awk TO FORMAT THE OUTPUT OF STRING3
#
if [ $(echo $STRING4 | awk '{print $3}') = "No" ];
        then
        echo $STRING4 | awk '{printf "%6s    %2s          0        0
Scratch\n",$1,$2}'else         echo $STRING4 | awk '{printf "%6s    %2s
%9s    %5s  %7s  %8s  %18s
%10s\n",$1,$2,$3,$4,$5,$6,$7,$8}'fi #
# IS THE COUNT HAS REACHED THREE LINE DISPLAY A SEPARATOR
#
if [ "$COUNT" -eq 3 ];
        then
        #
        # RESET THE COUNT VALUE
        #
        COUNT=0#         # DISPLAY SEPARATOR
        #
        echo
"
-----------------------------------------------------------------------------
-------"
-------"
#
#
# END IF COUNT EQ THREE
#
fi
#
# END FOR LOOP ON VOLS ARRAY
#
done
#
# DISPLAY THIS SCRIPT INFO
#
echo ""
echo ""
echo
"
*****************************************************************************

*******"
echo "** Rayonier, Inc. Jesup IT"
echo
"
*****************************************************************************

*******"


!!!NOTE!!!
This information is for educational purposes only. Rayonier, Inc.
Does not warrent in any form the validity or functionality of said data.

Bart Colbert
UNIX System Administrator
Rayonier, Inc.
4470 Savannah Hwy.
Jesup GA 31545
V 9124275559
F 9124275074
bart.colbert AT rayonier DOT com
www.rayonier.com
<Prev in Thread] Current Thread [Next in Thread>
  • Re: Perl and Scripts, Bart Colbert <=