#!/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
TIMESTAMP=`date +'%Y%m%d_%H.%M.%S'`
OUTFILE_TAR=cwbmedic.$TIMESTAMP.out
OUTFILE=~/$OUTFILE_TAR
TARFILE=~/cwbmedic.$TIMESTAMP.tgz
USER_ISERIESACCESS_DIR=.iSeriesAccess

#xlsfonts and xset error out if $DISPLAY is not set
if [ "$DISPLAY" == "" ]; then 
    export DISPLAY=":0"
fi

mkdir -p $HOME/$USER_ISERIESACCESS_DIR 1> /dev/null 2>&1

# 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...\c"

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

echo ".\c"
# 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
echo ".\c"

echo "================================ ENV ==============================" >> $OUTFILE
echo "env" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
env >> $OUTFILE 2>&1
echo ".\c"

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

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

echo "============================= PATH=================================" >> $OUTFILE
echo "\$PATH:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "$PATH" >> $OUTFILE 2>&1
echo ".\c"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

echo "==============================LOCALE ==============================" >> $OUTFILE
echo "Output from locale -a:" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
locale -a >> $OUTFILE 2>&1
echo ".\c"

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

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

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

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

echo "============================= CWBNLTBL ============================" >> $OUTFILE
echo "/opt/ibm/iSeriesAccess/bin/cwbnltbl" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
/opt/ibm/iSeriesAccess/bin/cwbnltbl >> $OUTFILE 2>&1
echo ".\c"

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

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

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 ".\c"

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 ".\c"

echo "============================= LS AL ===============================" >> $OUTFILE
echo "ls -RAlF /opt/ibm/iSeriesAccess" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -RAlF /opt/ibm/iSeriesAccess >> $OUTFILE 2>&1
echo ".\c"

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 ".\c"
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "xlsfonts" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
xlsfonts >> $OUTFILE 2>&1
echo ".\c"

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 "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/lib/libcwb* >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/lib64/libcwb*" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/lib64/libcwb* >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin/ibm5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin/ibm5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin64/ibm5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin64/ibm5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin/setup5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin/setup5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE
echo "ls -al /usr/bin64/setup5250" >> $OUTFILE
echo "-------------------------------------------------------------------" >> $OUTFILE
ls -al /usr/bin64/setup5250 >> $OUTFILE 2>&1
echo "-------------------------------------------------------------------" >> $OUTFILE

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


echo "."


# 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 " "
