Re: Handy Control Book Script for AIX

From: G V Raju (rajugv@INGVYSYABANK.COM)
Date: Wed Jan 07 2004 - 19:21:55 EST


Thanks to BV and Spencer Johnson

Regards
G V Raju
ING Vysya Bank - Data Center

-----Original Message-----
From: Spencer Johnson [mailto:Spencer.Johnson@2020LOG.COM]
Sent: Thursday, January 08, 2004 5:45 AM
To: aix-l@Princeton.EDU
Subject: Handy Control Book Script for AIX

Hi All,

As a follow up to post by Bill Versal I have a handy script for mapping out
the whole system, effectively a stretched out mksysb. I find it very handy
for quick reference when off site for configuration settings etc.

Have fun.

Spencer Johnson

Caudwell Distribution Group

#!/bin/ksh

#

# AIX Control Book for rs6000 Server

#

# Knocked together by Spencer Johnson

# Caudwell Distribution Group

#

#

book ()

{

title ()

{

echo
"\n\n_______________________________________________________________________
____________________"

echo "\n "$TITLE

echo
"\n_________________________________________________________________________
__________________\n\n"

}

# Set up Variables

lspv | grep vpath >/dev/null 2>&1

if [ $? -ne 0 ];then

        export DISK=hdisk

else

        export DISK=vpath

fi

echo "##############################"

echo "# AIX Control Book Creation #"

echo "##############################\n\n"

date

echo "\n\n\n C O N F I G U R A T I O N S U M M A R Y O U T P U
T\n\n\n"

echo "\n\nHostname: " `/bin/hostname -s`

echo "\n\nTime config_ run: " `/bin/date`

TITLE="PROCESSOR TYPE";title

TYPE=`uname -m|cut -c9-10`

NAME="Risc System/6000 Model ID:"

echo "$NAME $TYPE"

TITLE="LIST OF SYSTEM RESOURCES"; title

lsattr -EHl sys0

TITLE="PHYSICAL / LOGICAL {{ AVAILABLE }} DEVICE DETAILS ";title

lsdev -C | /bin/grep Available

TITLE="PHYSICAL / LOGICAL {{ DEFINED }} DEVICE DETAILS" ;title

lsdev -C |grep Defined|sort +3 -r

TITLE="LIST OF ADAPTERS ON SYSTEM";title

lsdev -Cc adapter

TITLE="HOT-PLUGGABLE DEVICES & SLOT NUMBERS";title

lsslot -c pci 1 2

if [ `lsdev -Cc tape|wc -l|awk '{print $1}'` -gt 0 ]

then

        TITLE="LIST OF TAPE DRIVES";title

        lsdev -Cc tape

        TITLE="TAPE DRIVE BLOCK SIZES";title

        lsdev -Cc tape|awk '{print $1}'|while read tape

        do

                block=`lsattr -El $tape|grep block|awk '{print $2}'`

                echo "TAPE DRIVE: $tape BLOCK SIZE: $block"

        done

fi

TITLE="DUMP DEVICES";title

sysdumpdev -l

TITLE="ESTIMATED DUMP SIZE";title

sysdumpdev -e

TITLE="NORMAL BOOTLIST";title

bootlist -m normal -o

TITLE="SERVICE BOOTLIST";title

bootlist -m service -o

TITLE="List of VPD (Vital Product Data)";title

lscfg -vp ; echo

TITLE="LICENSED PROGRAM PRODUCT HISTORY" ;title

/usr/bin/lslpp -h

TITLE="List of Installed AIX Programs (CS Format)"; title

lslpp -lc

TITLE="List of Installed AIX Programs"; title

lslpp -La

TITLE="List of Installed Patches and Fixes"; title

instfix -i| grep ML

TITLE="OS LICENSES"; title

lslicense

TITLE="DISKS ON SYSTEM";title

lsdev -Cc disk

TITLE="PAGING SPACES" ;title

lsps -a

TITLE="LIST OF MEMORY ON THE SYSTEM"; title

lsdev -Cc memory ; echo

lsattr -El sys0 -a realmem ; echo

lsattr -El mem0 ; echo

TITLE="SSA / DISK INFORMATION"; title

case `lsdev -Cc pdisk|wc -l|awk '{print $1}'` in

0 )

  ;;

* )

  hdisks=`lsdev -Cc disk | grep SSA | cut -f1 -d" "`

    hdisks=`lsdev -Cc disk -s ssar -F name`

  pdisks=`lsdev -Cc pdisk | cut -f1 -d" "`

     pdisks=`lsdev -Cc pdisk -F name`

  touch /tmp/hdisk.$$ # Temporary file - hdisk & SN

  touch /tmp/pdisk.$$ # Temporary file - pdisk & SN

  touch /tmp/locn.$$

  for i in $hdisks

  do

  print -n "$i " >> /tmp/hdisk.$$

  lsattr -El $i -a connwhere_shad | cut -c20-27 >> /tmp/hdisk.$$

  done

  for i in $pdisks

  do

  print -n "$i " >> /tmp/pdisk.$$

  lsattr -El $i -a connwhere_shad | cut -c20-27 >> /tmp/pdisk.$$

  done

  for i in $pdisks

  do

  print -n "$i " >> /tmp/locn.$$

  serno=`lsattr -El $i -a connwhere_shad | cut -c20-27`

  loc=`lscfg -vl $i|grep $i|cut -c 32-33`

  echo $serno $loc >> /tmp/locn.$$

  done

  for i in $pdisks

  do

  print -n "$i " >> /tmp/encl.$$

  serno=`lsattr -El $i -a connwhere_shad | cut -c20-27`

  enc=`lscfg -vl $i|grep $i|cut -c 27-30`

  echo $serno $enc >> /tmp/encl.$$

  done

  # Print header

  print "hdisk\tpdisk\tEncl Loc\tSize (MB)\tSerial Number\tPVID\t\t\tVG"

  echo "-----\t-----\t--------\t---------\t-------------\t----\t\t\t--"

  # Get PVID and VG for each hdisk and print it out

  for i in $hdisks

  do

  sn=`grep $i /tmp/hdisk.$$ | cut -f2 -d" "`

      sn=`grep "$i " /tmp/hdisk.$$ | awk '{ print $2 }'`

  pdisk=`grep $sn /tmp/pdisk.$$ | cut -f1 -d" "`

      pdisk=`grep $sn /tmp/pdisk.$$ | awk '{ print $1 }'`

  locn=`grep $sn /tmp/locn.$$ | cut -f3 -d" "`

      locn=`grep $sn /tmp/locn.$$ | awk '{ print $3 }'`

  encl=`grep $sn /tmp/encl.$$ | cut -f3 -d" "`

      encl=`grep $sn /tmp/encl.$$ | awk '{ print $3 }'`

  pvid=`lspv | grep $i | sed -e 's/ \{2,\}/ /g' | cut -f2 -d" "`

      pvid=`lspv | grep "$i " | awk '{ print $2 }'`

  vg=`lspv | grep $i | sed -e 's/ \{2,\}/ /g' | cut -f3 -d" "`

      vg=`lspv | grep "$i " | awk '{ print $3 }'`

  size=`lsattr -l $i -E|grep size |awk '{print $2}'`

  print "$i\t$pdisk\t$encl $locn \t$size\t\t$sn\t$pvid\t$vg"

  done

# rm /tmp/pdisk.$$ /tmp/hdisk.$$

  if [ -f /tmp/sysinfo/ls7133 ]

  then

     echo "\nSSA CABLING DIAGRAM"

     echo "-------------------"

     /tmp/sysinfo/ls7133 |grep '|'

  else

     continue

  fi

  continue

  ;;

esac

TITLE="List of Volume Groups and Related information"; title

lsvg | while read VG

do

        echo "\n\n####################################### $VG
#################################################"

        TITLE="lsvg $VG" ; title

        lsvg $VG

        TITLE="lsvg -p $VG" ; title

        lsvg -p $VG

        TITLE="lsvg -l $VG" ; title

        lsvg -l $VG

done

TITLE="List all Physical Volumes (PVs)";title

if [ $DISK = "vpath" ];then

        for type in vpath hdisk

        do

                echo;lspv | grep $type;echo

                lspv|grep $type| while read disk id vg

                do

                        echo "\n\n#######################################
$disk #################################################"

                        if [ $vg != "None" ] ; then

                                TITLE="lspv $disk";title

                                lspv $disk

                                TITLE="lspv -l $disk";title

                                lspv -l $disk

                                TITLE="lspv -p $disk";title

                                lspv -p $disk

                        fi

                done

        done

        TITLE="/usr/bin/datapath query device ";title

        /usr/bin/datapath query device

        TITLE="/usr/bin/lsvp -a";title

        /usr/bin/lsvp -a

        TITLE="/usr/bin/lsvp -d";title

        /usr/bin/lsvp -d|grep -v "checking device "

        TITLE="/usr/bin/lsess ";title

        /usr/bin/lsess

        TITLE="/usr/bin/lssdd ";title

        /usr/bin/lssdd

        TITLE="/usr/bin/ls2105";title

        /usr/bin/ls2105

else

        lspv|grep $DISK| while read disk id vg

        do

                echo "\n\n####################################### $disk
#################################################"

                if [ $vg != "None" ] ; then

                        TITLE="lspv $disk" ; title

                        lspv $disk

                        TITLE="lspv -l $disk" ; title

                        lspv -l $disk

                        TITLE="lspv -p $disk" ; title

                        lspv -p $disk

                        TITLE="lqueryvg -AtP -p /dev/$disk" ; title

                        lqueryvg -AtP -p /dev/$disk

                fi

        done

fi

TITLE="Relationship Between pdisks and hdisks" ; title

for i in $(lsdev -CS1 -cpdisk -sssar -F name)

do

  echo "$i: "$(ssaxlate -l $i)

done

TITLE="List of Logical Volume Details";title

lsdev -C|grep "Logical volume"|while read LV rest

do

        echo "\n\n####################################### $LV
#################################################"

        TITLE="lslv $LV " ; title

        lslv $LV

        TITLE="lslv -l $LV " ; title

        lslv -l $LV

        TITLE="lslv -m $LV " ; title

        lslv -m $LV

        TITLE="getlvcb -AT $LV" ; title

        getlvcb -AT $LV

done

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

banner LVM CHECKING

echo "\n\n\n*******************************************"

echo "*** LVM CHECKING ***"

echo "*******************************************\n\n\n"

LV_LIST=`lsvg -o | lsvg -il|grep -v ':'|grep -v 'LV NAME'|awk '{print $1}'`

echo "Checking LV mirroring, mirror strictness, mirror parallel schedule
policy .........."

for LV in $LV_LIST

do

   ############################

   # Check if LV is mirrored #

   ############################

   count=`lslv -m $LV| grep -v ':'| grep -v LP| sed -n 1p |wc -w`

   if [ $count -gt 3 ]

   then

      #####################################################

      # If it is mirrored then check for strict mirroring #

      #####################################################

      lslv -m $LV|grep -v ':'|grep -v LV| awk '$3 == $5 {print "WARNING
'$LV' LP "$1" is not strictly mirrored"}'

      ###########################################

      # Now check for Paralell mirror scheduling#

      ###########################################

      sched_pol=`lslv $LV | grep SCHED|awk '{print $5}'`

      if [ $sched_pol != "parallel" ]

      then

         echo "WARNING $LV is set to mirror in $sched_pol mode not parallel"

         echo "WARNING This could have a performance impact please
investigate"

      fi

   else

         echo "WARNING $LV is not mirrored please investigate"

   fi

done

echo "Checking all LVs are syncd............"

for LV in $LV_LIST

do

   #######################################

   # Check all LVs are syncd #

   #######################################

   SYNCSTATE=`lslv $LV| grep 'LV STATE:'| awk '{print $6}'| cut -d"/" -f2`

   if [ $SYNCSTATE != "syncd" ]

   then

      echo "Warning $LV is not syncd please investigate"

   fi

done

echo "Checking jfslog LVs have mirror write consistency set off for
performance."

JFSLOG_LIST=`lsvg -o | lsvg -il |grep jfslog| awk '{print $1}'`

for jfslog in $JFSLOG_LIST

do

   MWC=`lslv $jfslog | grep CONSIST| awk '{print $4}'`

   if [ $MWC != "off" ]

   then

      echo "WARNING the jfslog $jfslog has Mirror Write Consistency on"

      echo "This may have performance implications please investigate"

   fi

done

###########################

# Volume Group Checks #

###########################

echo "Checking Quorum settings.........."

VG_LIST=`lsvg -o`

for VG in $VG_LIST

do

   NUM_PV=`lspv | grep $VG|wc -l`

   if [ $NUM_PV -lt 3 ]

   then

      QUOR=`lsvg $VG|grep QUOR|awk '{print $5}'`

      if [ $QUOR -gt 1 ]

      then

         # Quorum is on

         echo "WARNING There are only $NUM_PV PVs in $VG and Quorum is set
on"

      fi

   else

      QUOR=`lsvg $VG|grep QUOR|awk '{print $5}'`

      ODD_EVEN=`expr $NUM_PV - $NUM_PV / 2 \* 2`

      if [ $QUOR -lt 2 ]

      then

         # Quorum must be off

         echo "WARNING There are $NUM_PV PVs in $VG and Quorum is set off"

         if [ $ODD_EVEN -eq 0 ]

         then

            # There are an even number of PVs

            echo "There are an even number of PVs in $VG so this may be"

            echo "OK if it is mirrored across SSA drawers"

         else

            # There are an odd number of PVs

            echo "There are an odd number of PVs in $VG so investigate"

         fi

      else

         # Quorum must be on

         if [ $ODD_EVEN -eq 0 ]

         then

            echo "WARNING There are an even number of PVs in $VG and Quorum
is on"

            echo "WARNING if these disks are mirrored across SSA drawers
please investigate"

            echo "WARNING as this may cause a problem in the event of a
drawer failure"

         fi

      fi

   fi

done

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

TITLE="MOUNTED FILESYSTEMS" ;title

mount

TITLE="Document the File Systems";title

lsfs ; echo

lsjfs ; echo

TITLE="Document the Disk Allocation";title

df -kv

TITLE="Document the filesystems";title

cat /etc/filesystems

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

TITLE="Running WIT Program";title

# Page Space(s)

echo "\n\n";lsps -a | awk 'BEGIN {

        getline;

        print $0

        print "---------- --------------- ------------ ------ -----
------ ---- ----"

        }

        { # ON EVERY RECORD

                print $0

                sum += $4

        }

        END {

                print " ------"

                if ( sum < 1000 ) {

                        printf("
%5d MBytes\n\n", sum)

                }

                else {

                        printf("
%5d GBytes\n\n", sum/1000)

                }

        }'

# Volume Group, LVM and Filesystems

for vg in `lsvg`

do

        echo "Volume Group: "$vg

        echo " PP Size: "`lsvg $vg | grep "PP SIZE" | awk '{ print $6
}'`" MBytes/PP"

        for pv in `lsvg -p $vg | sed 1,2d | awk '{ print $1 }'`

        do

                echo "$pv `lspv $pv | fgrep 'FREE PP' | tr -d ":" | sed
's/ //'`" | awk '{

                printf(" %8s: %s %s %s %s %s %s
%s\n",$1,$4,$2,$3,$5,$6,$7,$8)

                }'

        done | awk '{

                gsub(/\(/,"",$5)

                gsub(/\)/,"",$6)

                sum += $5

                printf(" %8s%5s %s %s =%6s MB\n",$1,$2,$3,$4,$5)

                }

                END {

                printf(" ------\n")

                printf(" %6s MBytes\n",sum)

# drr #

                }'

        echo "\nFilesystems: Total (KB) Free (KB)
%Free"

        echo " ---------- ---------
-----"

           lsvg -l $vg | grep "jfs "|grep -v N\/A | awk '{ print $7 }' |
xargs -n1 df -k | grep -v Filesystem| awk '

                $2 > 0 {

                        printf ("%-30s%12d%12d%7d%%\n",$7,$2,$3,$3/$2*100)

                        total += $2

                        free += $3

                }

                END {

                        print(" ----------
---------")

                        printf(" %10d
%9d\n\n",total,free)

                }'

done

# Installed Memory

echo "Memory Config:\n"

for mem in `$LSCFG -v | grep mem[0-7] | cut -c3-6`

do

        $LSATTR -l $mem -E | awk '/^size/ { printf("%4d MByte memory
card\n", $2);

 }'

done

$LSATTR -l sys0 -E | awk '/realmem/ { printf("----\n%4d MBytes Total
Memory",

 $2/1024); }'

echo "; \c"

/usr/bin/rmss -p

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

###~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~###

TITLE="Document the paging space activation";title

cat /etc/swapspaces

TITLE="DOCUMENT ALL PRINTERS";title

function is_ext {

                if [[ -x /usr/lib/lpd/pio/etc/piolsvp ]]

                then

                        /usr/lib/lpd/pio/etc/piolsvp -p 2>/dev/null

                else

                        /usr/bin/lsallq

                fi

                }; is_ext

TITLE="Printer Configuration File /etc/qconfig";title

cat /etc/qconfig

TITLE="Document the network printing";title

cat /etc/hosts.lpd

TITLE="Document the users on the system";title

lsuser -c ALL|grep -v ^#

TITLE="Document the Security settings";title

echo "cat /etc/security/login.cfg"

TITLE="cat /etc/security/group";title

cat /etc/security/group

TITLE="cat /etc/security/limits";title

cat /etc/security/limits

TITLE="cat /etc/security/user";title

cat /etc/security/user

TITLE="cat /etc/security/passwd" ;title

cat /etc/security/passwd

TITLE="cat /etc/passwd" ; title

cat /etc/passwd

TITLE="cat /etc/group" ;titile

cat /etc/group

TITLE="cat /usr/lib/security/mkuser.default";title

cat /usr/lib/security/mkuser.default

TITLE="cat /usr/lib/security/mkuser.sys";title

cat /usr/lib/security/mkuser.sys

TITLE="Document the valid group attributes";title

lsgroup -c ALL | sed '/^#.*/d' | tr ':' '\011'

TITLE="List ALL System Resouces";title

lssrc -a ; echo

TITLE="RC.SHUTDOWN FILE";title

cat /etc/rc.shutdown

TITLE="INETD.CONF FILE";title

cat /etc/inetd.conf

TITLE="SENDMAIL.CF FILE";title

cat /etc/sendmail.cf

TITLE="SYSLOG.CONF FILE";title

cat /etc/syslog.conf

TITLE="RC.LOCAL FILE";title

cat /usr/local/etc/rc.local

TITLE="Document the system wide profile";title

cat /etc/security/.profile

TITLE="Document the system wide environment";title

cat /etc/environment

TITLE="Document the cron jobs";title

for cron in `ls -1 /var/spool/cron/crontabs/`

do

        echo
"\n###################################################################"

        echo
"###################################################################"

        echo "Cron Listing for User $cron"

        echo
"###################################################################"

        echo
"###################################################################"

        cat /var/spool/cron/crontabs/$cron ; echo

done

TITLE="Document the system startup file";title

cat /etc/inittab

TITLE="Document the hostnames";title

cat /etc/hosts

TITLE="Document the remote login authority";title

cat /etc/hosts.equiv

if [ -f /etc/resolv.conf ]

  then

        TITLE="Document the /etc/resolv.conf file";title

        cat /etc/resolv.conf

fi

if [ -f /etc/netsvc.conf ]

  then

        TITLE="Document the /etc/netsvc.conf file";title

        cat /etc/netsvc.conf

fi

TITLE="Listing of /dev";title

ls -l /dev

TITLE="LISTING OF NETWORK INTERFACES";title

lsdev -Cc if

TITLE="NETWORK INTERFACE DETAILS";title

interfaces=`lsdev -Cc if -S a|awk '{print $1}'`

for i in $interfaces

do

        ifconfig $i

done

if [ `lsdev -C|grep ent[0-9]|wc -l|awk '{print $1}'` -gt 0 ]

then

        TITLE="NETWORK ADAPTER SPEED";title

        lsdev -C|grep ent[0-9]|awk '{print $1}'|while read device

        do

                echo "$device `lsattr -El $device|grep media_speed|awk
'{print $2}'"

        done

fi

TITLE="NETWORK STATIC ROUTES";title

netstat -rn;echo

netstat -v

TITLE="NETWORK CONFIGURATION VALUES";title

no -a

TITLE="ARP INFORMATION";title

arp -a

TITLE="NETWORK CONFIGURATION INFORMATION" ;title

netstat -i ; echo

netstat -a ; echo

if [ -f /bosinst.data ]

  then

        TITLE="DOCUMENT THE SYSTEM/MKSYSB /bosinst.data FILE";title

        cat /bosinst.data

fi

if [ -f /image.data ]

  then

        TITLE="DOCUMENT THE SYSTEM/MKSYSB /image.data FILE";title

        cat /image.data

fi

lsvg | grep -v rootvg| while read VG

do

if [ -f /tmp/vgdata/$VG/${VG}.data ]

  then

        TITLE="DOCUMENT THE ${VG}.data FILE for $VG Volume Group";title

        cat /tmp/vgdata/$VG/${VG}.data

fi

done

}

book >/tmp/AIX_Control_Book.log 2>&1

/usr/local/bin/mpack -s"AIX Control Book for `hostname` on `lsattr -El
sys0|grep modelname|awk '{print $2}'` Server" /tmp/AIX_Control_Book.log
2020_UNIX@2020log.com

**

***************************************************************
Disclaimer :-
This email is confidential and intended solely for the use of the
individual to whom it is addressed. Any views or opinions are solely
those of the author and do not necessarily represent those of
20:20 Logistics Ltd, Dextra Solutions Ltd, The Discovery Store Ltd,
The Mobile Phone Repair Company Ltd and Caudwell Group.
If you are not the intended recipient, be advised that you have
received this email in error and that any use, dissemination,
forwarding, printing or copying is strictly prohibited. If you
have received this email in error please delete it from your system
and notify the sender immediately.
***************************************************************





This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 22:17:28 EDT