#!/usr/bin/ksh
LANG=c
DIR=`pwd`
DATE=`date +%y%m%d%H%M%S`
SRV=`uname -n`
RPT=${DIR}/$SRV"-HC-"$DATE.log
TMP="/tmp"
> ${RPT}

exec >> ${RPT} 2>&1

# last month
t=`expr 24 \* 31 - 9`
year=`TZ=KORST+$t; date +%y`
month=`TZ=KORST+$t; date +%m`
O_DATE=$month'010000'$year

echo "#****************************************************************************#"
echo "#                                                                            #"
echo "#                             AIX check list                                 #"
echo "#                                            made by Lee SH                  #"
echo "#                                                                            #"
echo "#   Date: `date`                                     #"
echo "#                                                                            #"
echo "#****************************************************************************#"
echo " "
echo "=============================================================================="
echo "                         < System Infomation>                                 "
echo " "
echo "# Hostname: `hostname`"
echo " "
echo "# Machine Type-Model: `uname -aMu|awk '{print $6}'`"
echo " "
echo "# Serial Number: `uname -aMu|awk '{print $7}'`"
echo " "
echo "# Firmware Level:"
/usr/sbin/lsmcode -c
echo " "
echo "# OS level: `oslevel -s`"
echo " "
echo "# Uptime: `uptime|awk '{print $3 $4}'`"
echo " "
echo "=============================================================================="
echo "                          < Hardware Check >                                  "
echo " "
echo "------------------------------------------------------------------------------"
echo "# Processor: "
echo " "
/usr/sbin/lsdev -Cc processor
echo " "
/usr/sbin/lsdev -Cc processor |awk '{print "lsattr -El " $1}'|sh -x
echo " "
echo "------------------------------------------------------------------------------"
echo "# Memory: "
echo " "
/usr/sbin/lsattr -El mem0 | grep -i size
echo " "
/usr/sbin/lscfg -vp |grep -ip dimm | grep -i "physical location"
echo " "
echo "------------------------------------------------------------------------------"
echo "# Memory Usage: "
echo " "
echo `svmon -G | grep memory | awk '{print $3/$2*100, "%"}'`
echo " "
echo "------------------------------------------------------------------------------"
echo "# Disk: "
echo " "
/usr/sbin/lsdev -Cc disk
echo " "
path=`lspath |grep -iv enabled|wc -l`
if [ $path -eq 0 ] ; then
echo "All Paths is Operational."
else
/usr/sbin/lspath |grep -iv enabled
fi
echo " "
echo "------------------------------------------------------------------------------"
echo "# Ethernet Adapters: "
echo " "
/usr/sbin/lsdev -Cc adapter |grep -i ent|grep -iv client
echo " "
echo "------------------------------------------------------------------------------"
echo "# Etherchannel Adapters: "
echo " "
/usr/sbin/lsdev -Cc adapter |grep -i etherchannel |awk '{print "lsattr -El " $1}'|sh -x
echo " "
/usr/sbin/lsdev -Cc adapter |grep -i etherchannel |awk '{print "entstat -d " $1}'|sh -x
echo " "
echo "------------------------------------------------------------------------------"
echo "# FC Adapters: "
echo " "
/usr/sbin/lsdev -Cc adapter |grep -i fcs
echo " "
/usr/sbin/lsdev -C|grep -i fscsi |awk '{print "lsattr -El " $1}'|sh -x
echo " "
echo "------------------------------------------------------------------------------"
echo "# Other Adapters: "
echo " "
/usr/sbin/lsdev -Cc adapter |grep -iv ethernet|grep -iv fcs |grep -iv etherchannel|grep -iv ent
/usr/sbin/lsdev -Cc tape
/usr/sbin/lsdev -Cc cdrom
echo " "
echo "==============================================================================="
echo "                          < Network Information >                              "
echo " "
echo "# IP check: "
echo " "
/usr/sbin/ifconfig -a
echo " "
echo "------------------------------------------------------------------------------"
echo "# Routing Table: "
echo " "
/usr/bin/netstat -rn
echo " "
echo "------------------------------------------------------------------------------"
echo "# Ping Test: "
echo " "
/usr/bin/netstat -rn|grep -i default |awk '{print "ping -c 5 " $2}' |sh -x
echo " "
echo "------------------------------------------------------------------------------"
echo "# NTP Configuration"
echo " "
/usr/sbin/ntpq -p
echo " "
echo "=============================================================================="
echo "                       < Error log Check >                                    "
echo " "
echo "# Error Log: "
echo " "
/usr/bin/errpt -s $O_DATE
echo " "
echo "=============================================================================="
echo "                           < OS Information >                                 "
echo " "
echo "# PV status: "
/usr/sbin/lspv
echo " "
echo "------------------------------------------------------------------------------"
echo "# VG status: "
echo " "
/usr/sbin/lsvg
echo " "
echo "------------------------------------------------------------------------------"
echo "# Active VG: "
echo " "
/usr/sbin/lsvg -o
echo " "
echo "------------------------------------------------------------------------------"
echo "# rootvg detail: "
echo " "
/usr/sbin/lsvg rootvg
echo " "
/usr/sbin/lsvg -p rootvg
echo " "
/usr/sbin/lsvg -l rootvg
echo " "
echo "------------------------------------------------------------------------------"
echo "# Filesystem usage: "
echo " "
/usr/bin/df -Pg
echo " "
echo "------------------------------------------------------------------------------"
echo "# Boot list: "
echo " "
/usr/bin/bootlist -m normal -o
echo " "
echo "------------------------------------------------------------------------------"
echo "# Paging Space: "
echo " "
/usr/sbin/lsps -as
echo " "
/usr/sbin/lsps -a
echo " "
echo "------------------------------------------------------------------------------"
echo "# Dump Device: "
echo " "
/usr/bin/sysdumpdev -l
echo " "
/usr/bin/sysdumpdev -L
echo " "
/usr/bin/sysdumpdev -e
echo " "
echo "------------------------------------------------------------------------------"
echo "# Defunct Process: "
echo " "
defunct=`ps -ef|grep -i defunct| grep -iv "grep"|wc -l`
if [ $defunct -eq 0 ]; then
 echo "Defunct Process is nothing."
else
 /usr/bin/ps -ef|grep -i defunct| grep -iv grep
echo " "
 echo "Total Defunct Process: $defunct ea"
fi
echo " "
echo "------------------------------------------------------------------------------"
echo "# Fileset check: "
echo " "
lppchk=`/usr/bin/lppchk -v|wc -l`
if [ $lppchk -eq 0 ]; then
 echo "Normal Status."
else
/usr/bin/lppchk -v
fi
echo " "
/usr/sbin/instfix -i |grep -i ml
echo " "
echo "------------------------------------------------------------------------------"
echo "# OS parameter: "
echo " "
/usr/sbin/lsattr -El sys0 |egrep -i "fullcore|iostat|maxuproc" | awk '{print $1 "     " $2}'
echo " "
echo "==============================================================================="
echo "                            < Cluster Information >                            "
echo " "
cluster=`lslpp -l |grep -i "cluster.es.server.rte"| wc -l`
if [ $cluster -eq 0 ]; then
 print "PowerHA SystemMirror Not Installed!"
else
echo "------------------------------------------------------------------------------"
 echo "# Cluster fileset: "
echo " "
/usr/bin/lslpp -l |grep -i cluster
 echo " "
echo "------------------------------------------------------------------------------"
 echo "# Cluster Status: "
echo " "
 /usr/bin/lssrc -ls clstrmgrES |grep -i "current state"
 echo " "
/usr/sbin/lscluster -i
echo " "
concurrent=`ps -ef|grep -i "gsclvmd -r" |grep -iv grep |wc -l`
if [ $concurrent -eq 0 ]; then
echo "------------------------------------------------------------------------------"
  echo "# Enhanced Concurrent VG Not Used!"
 else
echo "------------------------------------------------------------------------------"
  echo "# Concurrent VG: " $concurrent "ea"
 fi
 echo " "
echo "------------------------------------------------------------------------------"
 echo "# Cluster Version: "
echo " "
/usr/es/sbin/cluster/utilities/halevel -s
 echo " "
/usr/bin/lslpp -l |grep -i cluster|grep -i server.rte
 echo " "
/usr/es/sbin/cluster/utilities/clRGinfo
fi
echo " "
echo "==============================================================================="
echo "                            < Spectrum Scale Information >                            "
echo " "
cluster=`lslpp -l |grep -i gpfs| wc -l`
if [ $cluster -eq 0 ]; then
 print "Spectrum Scale Not Installed"
else
echo "------------------------------------------------------------------------------"
 echo "# Spectrum Scale fileset: "
echo " "
/usr/bin/lslpp -l |grep -i gpfs
 echo " "
echo "------------------------------------------------------------------------------"
 echo "# Spectrum Scale Configurations: "
echo " "
/usr/lpp/mmfs/bin/mmlscluster
sleep 30
 echo " "
/usr/lpp/mmfs/bin/mmgetstate -aL
sleep 30
 echo " "
/usr/lpp/mmfs/bin/mmlsnsd -m
sleep 30
echo " "
/usr/lpp/mmfs/bin/mmlsdisk all
sleep 30
echo " "
/usr/lpp/mmfs/bin/mmlsconfig
sleep 30
 echo " "
/usr/lpp/mmfs/bin/mmlsfs all -A
sleep 30
 echo " "
/usr/lpp/mmfs/bin/mmlsmount all
sleep 30
echo " "
/usr/lpp/mmfs/bin/mmlsconfig
fi
echo " "
echo "==============================================================================="
print "AIX system Health Check Finished."
echo "==============================================================================="
