From: Alexandre Sato (alexandre.sato@BR.ABNAMRO.COM)
Date: Wed May 19 2004 - 15:48:01 EDT
Hi *
I'm just forwarding an old email from this list. This useful shell script
was submited by Spencer Johnson as a follow up to a post by Bill Versal. I
use it with little modifications, but essentially the same one. It might
fits to your needs
#!/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
Best Regards!
--- Alexandre Kazuo Sato Third Part Consultant - UNIX Specialist TI - Open Systems Engineering Banco ABN AMRO REAL S.A. Tel.: 11 - 3174-5307 Fax: 11 - 3174-9099 E-mail: alexandre.sato@br.abnamro.com Shawn Bierman <BiermanS@METHODISTHEALTH.ORG> Sent by: IBM AIX Discussion List <aix-l@Princeton.EDU> 19/05/2004 14:58 Please respond to IBM AIX Discussion List To: aix-l@Princeton.EDU cc: Subject: system documentation script before I reinvent the wheel, I was wondering if someone already has a script that documents that hardware configuration of an AIX node and saves it to a file. Something that does an lscfg and lsdev etc... Also keeps a quick copy of things like the /etc/passwd /etc/group /etc/hosts etc... thanks for the help. -shawn --------------------------------------------------------------------------- This message (including any attachments) is confidential and may be privileged. If you have received it by mistake please notify the sender by return e-mail and delete this message from your system. Any unauthorised use or dissemination of this message in whole or in part is strictly prohibited. Please note that e-mails are susceptible to change. ABN AMRO Bank N.V. (including its group companies) shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. ABN AMRO Bank N.V. (or its group companies) does not guarantee that the integrity of this communication has been maintained nor that this communication is free of viruses, interceptions or interference. ---------------------------------------------------------------------------
This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 22:17:56 EDT