#!/bin/sh
# This is a script that gathers up information for problem determination.
# The files are created and stored in the $HOME directory
# The resulting tar file is created relative to the $HOME directory

OUTFILE_TAR=cwbmedic.out
OUTFILE=~/$OUTFILE_TAR
TARFILE=~/cwbmedic.tgz
USER_ISERIESACCESS_DIR=.iSeriesAccess

# Clear out file
rm -f $OUTFILE 1> /dev/null 2>&1

echo "================== iSeries Access for Linux =======================" >> $OUTFILE
echo "============================ cwbMedic =============================" >> $OUTFILE
echo "iSeries Access for Linux"
echo "cwbMedic - Service information collection tool"
echo " "
echo "...collecting service information, please wait..."

echo "============================ DATE =================================" >> $OUTFILE
echo "Output from date:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
date >> $OUTFILE

# Before we add to the current PATH let try a 'which ibm5250'...
echo "============================ WHICH IBM5250 ========================" >> $OUTFILE
echo "which ibm5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
which ibm5250 >> $OUTFILE 2>&1

# Add to the PATH
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/opt/ibm/iSeriesAccess/bin

echo "============================= ID ==================================" >> $OUTFILE
echo "Output from id:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
id >> $OUTFILE 2>&1

echo "============================= PS ==================================" >> $OUTFILE
echo "Output from ps auxw:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ps auxw >> $OUTFILE 2>&1

echo "============================= DF ==================================" >> $OUTFILE
echo "Output from df:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
df >> $OUTFILE 2>&1

echo "============================= MOUNT ===============================" >> $OUTFILE
echo "Output from mount:">> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
mount >> $OUTFILE 2>&1

echo "============================= NETSTAT =============================" >> $OUTFILE
echo "Output from netstat -r:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
netstat -r >> $OUTFILE 2>&1

echo "============================= ARP =================================" >> $OUTFILE
echo "Output from arp -a:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
arp -a >> $OUTFILE 2>&1

echo "============================= DNS INFO ============================" >> $OUTFILE
echo "Output from cat /etc/resolv.conf:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/resolv.conf >> $OUTFILE 2>&1

echo "============================= HOSTS INFO ==========================" >> $OUTFILE
echo "Output from cat /etc/hosts:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/hosts >> $OUTFILE 2>&1

echo "============================ VERSION INFO =========================" >> $OUTFILE
echo "Output from cat /proc/version:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /proc/version >> $OUTFILE 2>&1

echo "============================ RELEASE INFO =========================" >> $OUTFILE
echo "Output from cat /etc/*-release" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/*-release >> $OUTFILE 2>&1

echo "============================= MEMORY INFO =========================" >> $OUTFILE
echo "Output from cat /proc/meminfo:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /proc/meminfo >> $OUTFILE 2>&1

echo "============================= CPU INFO ============================" >> $OUTFILE
echo "Output from cat /proc/cpuinfo:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /proc/cpuinfo >> $OUTFILE 2>&1

echo "============================= UNAME ===============================" >> $OUTFILE
echo "Output from uname -a:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
uname -a >> $OUTFILE 2>&1

echo "============================= DMESG ===============================" >> $OUTFILE
echo "Output from dmesg:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
dmesg >> $OUTFILE 2>&1

echo "============================= IFCONFIG ============================" >> $OUTFILE
echo "Output from ifconfig -am:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ifconfig -a >> $OUTFILE 2>&1

echo "==============================LOCALE ==============================" >> $OUTFILE
echo "Output from locale:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
locale >> $OUTFILE 2>&1

echo "============================= SET SORT ============================" >> $OUTFILE
echo "Output from set | sort:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
set | sort >> $OUTFILE 2>&1

echo "============================= JAVA ================================" >> $OUTFILE
echo "Output from java -fullversion:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
java -fullversion >> $OUTFILE 2>&1

echo "============================= RPM QI ISERIES ======================" >> $OUTFILE
echo "Output from rpm -qi iSeriesAccess :" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
rpm -qi iSeriesAccess >> $OUTFILE 2>&1

echo "============================= RPM QA SORT==========================" >> $OUTFILE
echo "Output from rpm -qa | sort:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
rpm -qa | sort >> $OUTFILE 2>&1

echo "============================= CWBNLTBL ============================" >> $OUTFILE
echo "cwbnltbl" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cwbnltbl >> $OUTFILE 2>&1

echo "============================= ODBCINST ============================" >> $OUTFILE
echo "odbcinst -j" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
odbcinst -j >> $OUTFILE 2>&1

echo "============================= USER ODBC ===========================" >> $OUTFILE
echo ".odbc.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat .odbc.ini >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo ".odbcinst.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat .odbcinst.ini >> $OUTFILE 2>&1

echo "============================== ETC ODBC ===========================" >> $OUTFILE
echo "cat /etc/odbc.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/odbc.ini >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "cat /etc/odbcinst.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/odbcinst.ini >> $OUTFILE 2>&1

echo "============================== ETC UNIXODBC =======================" >> $OUTFILE
echo "cat /etc/unixODBC/odbc.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/unixODBC/odbc.ini >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "cat /etc/unixODBC/odbcinst.ini" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/unixODBC/odbcinst.ini >> $OUTFILE 2>&1

echo "============================= LS AL ===============================" >> $OUTFILE
echo "find /opt/ibm/iSeriesAccess -type d -exec ls -Al {} \;" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
find /opt/ibm/iSeriesAccess -type d -exec ls -Al {} \; >> $OUTFILE 2>&1

echo "============================= X INFO ==============================" >> $OUTFILE
echo "cat /etc/X11/XF86Config" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/X11/XF86Config >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "cat /etc/X11/xorg.conf" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/X11/xorg.conf >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "xset -q" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
xset -q >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "xlsfonts" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
xlsfonts >> $OUTFILE 2>&1

echo "============================= LD.SO.CONF INFO =====================" >> $OUTFILE
echo "cat /etc/ld.so.conf" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
cat /etc/ld.so.conf >> $OUTFILE 2>&1

echo "============================= SIM LINK CHECK ======================" >> $OUTFILE
echo "ls -al /usr/lib/libcwb*" >> $OUTFILE
echo "ls -al /usr/lib64/libcwb*" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/lib/libcwb* >> $OUTFILE 2>&1
ls -al /usr/lib64/libcwb* >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin/ibm5250" >> $OUTFILE
echo "ls -al /usr/bin64/ibm5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin/ibm5250 >> $OUTFILE 2>&1
ls -al /usr/bin64/ibm5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin/setup5250" >> $OUTFILE
echo "ls -al /usr/bin64/setup5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin/setup5250 >> $OUTFILE 2>&1
ls -al /usr/bin64/setup5250 >> $OUTFILE 2>&1

echo "============================= LDD CHECK ===========================" >> $OUTFILE
echo "ldd -r -d /usr/lib/libcwb*" >> $OUTFILE
echo "ldd -r -d /usr/lib64/libcwb*" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ldd -r -d /usr/lib/libcwb* >> $OUTFILE 2>&1
ldd -r -d /usr/lib64/libcwb* >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ldd -r -d /usr/bin/ibm5250" >> $OUTFILE
echo "ldd -r -d /usr/bin64/ibm5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ldd -r -d /usr/bin/ibm5250 >> $OUTFILE 2>&1
ldd -r -d /usr/bin64/ibm5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ldd -r -d /opt/ibm/iSeriesAccess/bin/cwblmsrv" >> $OUTFILE
echo "ldd -r -d /opt/ibm/iSeriesAccess/bin64/cwblmsrv" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ldd -r -d /opt/ibm/iSeriesAccess/bin/cwblmsrv >> $OUTFILE 2>&1
ldd -r -d /opt/ibm/iSeriesAccess/bin64/cwblmsrv >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "----------------------------END------------------------------------" >> $OUTFILE

# Now that we've got alot gathered up, tar it to save space
rm -f $TARFILE > /dev/null 2>&1
# Tar up the output and the user's .iSeriesAccess dir relative to $HOME
tar czf $TARFILE -C $HOME $OUTFILE_TAR $USER_ISERIESACCESS_DIR  2>&1 | grep -v "Removing leading"
# Remove the temp file
rm -f $OUTFILE > /dev/null 2>&1

echo " "
echo "cwbMedic has produced the following file:"
ls -l $TARFILE
echo "If requested, please send this file ("$TARFILE") to IBM Service for analysis"
echo " "
echo "To view the contents of this file, enter the following commands:"
echo "tar xvzf "$TARFILE
echo "cat "$OUTFILE_TAR
echo " "
