41
#!/bin/bash ############################################################################## # Copyright (c) J.S Unix Consultants Ltd ############################################################################## # # # FILE : linux-explorer.sh # Last Change Date : 29-09-2010 # Author(s) : Joe Santoro # Date Started : 15th April, 2004 # Email : linuxexplo [ at ] unix-consultants.com # Web : http://www.unix-consultants.com/examples/scripts/linux/linu x-explorer # # Usage : ./linux-explorer.sh [-d] [-v] [-s] [-h] [-V] # # Purpose : This script is a linux version of the Solaris explorer # (SUNWexplo) script. # # Used to collect information about a linux system build for r emote # support supposes. # This script is a general purpose script for ALL linux # systems and therefore NOT tied into any one distro. # ############################################################################## # # J.S UNIX CONSULTANTS LTD MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE # SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT # LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # PARTICULAR PURPOSE, OR NON-INFRINGEMENT. J.S UNIX CONSULTANTS LTD SHALL # NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, # MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. # ############################################################################## COPYRIGHT="Copyright (c) J.S Unix Consultants Ltd" MYVERSION="0.105" MYDATE="$(/bin/date +'%Y.%m.%d.%m.%H.%M')" # Date and time now MYNAME=$(basename $0) WHOAMI=$(/usr/bin/whoami) # The user running the script HOSTID=$(/usr/bin/hostid) # The Hostid of this server MYHOSTNAME=$(/bin/uname -n) # The hostname of this server MYSHORTNAME=$(echo $MYHOSTNAME | cut -f 1 -d'.') TMPFILE="/tmp/$(basename $0).$$" # Tempory File TOPDIR="/opt/LINUXexplo" # Top level output directory VERBOSE=0 # Set to see the scripts progress used # only if connected to a terminal sessi on. FULLSOFT=0 # Set to Verify Software installation # this takes a very long time # # Ensure that we are the root user # if [ "$WHOAMI" != "root" ] ; then

Linux Explorer

Embed Size (px)

Citation preview

#!/bin/bash ############################################################################### Copyright (c) J.S Unix Consultants Ltd################################################################################# FILE : linux-explorer.sh # Last Change Date : 29-09-2010# Author(s) : Joe Santoro# Date Started : 15th April, 2004# Email : linuxexplo [ at ] unix-consultants.com# Web : http://www.unix-consultants.com/examples/scripts/linux/linux-explorer ## Usage : ./linux-explorer.sh [-d] [-v] [-s] [-h] [-V]## Purpose : This script is a linux version of the Solaris explorer # (SUNWexplo) script.## Used to collect information about a linux system build for remote # support supposes. # This script is a general purpose script for ALL linux # systems and therefore NOT tied into any one distro.################################################################################# J.S UNIX CONSULTANTS LTD MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE # SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT # LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A# PARTICULAR PURPOSE, OR NON-INFRINGEMENT. J.S UNIX CONSULTANTS LTD SHALL # NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,# MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.###############################################################################

COPYRIGHT="Copyright (c) J.S Unix Consultants Ltd" MYVERSION="0.105" MYDATE="$(/bin/date +'%Y.%m.%d.%m.%H.%M')" # Date and time now MYNAME=$(basename $0) WHOAMI=$(/usr/bin/whoami) # The user running the script HOSTID=$(/usr/bin/hostid) # The Hostid of this serverMYHOSTNAME=$(/bin/uname -n) # The hostname of this serverMYSHORTNAME=$(echo $MYHOSTNAME | cut -f 1 -d'.') TMPFILE="/tmp/$(basename $0).$$" # Tempory File TOPDIR="/opt/LINUXexplo" # Top level output directory

VERBOSE=0 # Set to see the scripts progress used # only if connected to a terminal sessi

on.

FULLSOFT=0 # Set to Verify Software installation # this takes a very long time

## Ensure that we are the root user#if [ "$WHOAMI" != "root" ] ; then

echo echo "ERROR: Sorry only the root user can run this script"echoexit 1

fi

## Set the path for the script to run.#PATH=/bin:/usr/sbin:/sbin:/usr/sbin:/usr/local/bin:$PATH

if [ -d /opt/VRTSvcs/bin ] ; thenPATH=$PATH:/opt/VRTSvcs/bin

fi

export PATH

# Remove any temporary files we createtrap '$RM -f $TMPFILE >/dev/null 2>&1; exit' 0 1 2 3 15

################################################################################ Function : Usage## Notes : N/A###############################################################################

function ShowUsage {

#------------------------------------------------------------------- # Show help message #-------------------------------------------------------------------

echo echo "$MYNAME Version $MYVERSION - $COPYRIGHT " echo echo " usage: $MYNAME [option] "echo echo " -d Target directory for explorer files"echo " -v Verbose output"echo " -s Verify Package Installation"echo " -h This help message"echo " -V Version Number of LINUXEXPLO"echo exit 0

}

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

# Function : Echo## Parameters : String to display what function is about to run## Output : Print what section we are about to collect data for## Notes : N/A###############################################################################

function Echo () {

if [ -t 0 ] ; then

if [ ${VERBOSE} -ne 0 ] ; thenecho "$*"echo "============================================="

fi

if [ ${VERBOSE} -gt 1 ] ; thenecho "Press Return to Continue.........."read A

fifi

}

################################################################################ Function : mywhich## Parameters : name of program ## Output : path of executable## Notes : Return back the location of the executable# I need this as not all linux distros have the files# in the same location.###############################################################################

function mywhich (){

local command=$1

local mypath=$(which $command 2>/dev/null)

if [ "$mypath" = "" ] ; thenecho "Command $command not found" >> $NOTFNDLOGecho "NOT_FOUND"

elif [ ! -x "$mypath" ] ; thenecho "Command $command not executable" >> $NOTFNDLOGecho "NOT_FOUND"

else

echo "$mypath"fi

}

################################################################################ Function : findCmds## Parameters : None## Output : None ## Notes : Goes and find each of the commands I want to use and # stores the information into the various variables which # is the uppercase version of the command itself. ## I need this as not all linux distros have the files# in the same location.###############################################################################

function findCmds {

# Standard commands

AWK=$(mywhich awk ) BASENAME=$(mywhich basename ) CAT=$(mywhich cat ) CHKCONFIG=$(mywhich chkconfig ) CP=$(mywhich cp ) CUT=$(mywhich cut ) CHMOD=$(mywhich chmod ) DATE=$(mywhich date ) DF=$(mywhich df ) DMESG=$(mywhich dmesg ) ECHO=$(mywhich echo ) FILE=$(mywhich file ) FIND=$(mywhich find ) FREE=$(mywhich free ) GREP=$(mywhich grep ) EGREP=$(mywhich egrep ) LS=$(mywhich ls ) MKDIR=$(mywhich mkdir ) LAST=$(mywhich last ) LOCALE=$(mywhich locale ) PSTREE=$(mywhich pstree ) PS=$(mywhich ps ) RM=$(mywhich rm ) SLEEP=$(mywhich sleep ) MOUNT=$(mywhich mount ) MV=$(mywhich mv ) SORT=$(mywhich sort ) TAIL=$(mywhich tail ) UNAME=$(mywhich uname ) UPTIME=$(mywhich uptime ) WHO=$(mywhich who )

ZIP=$(mywhich zip ) GZIP=$(mywhich gzip ) GAWK=$(mywhich gawk ) SED=$(mywhich sed ) GUNZIP=$(mywhich gunzip )

# Selinux SESTATUS=$(mywhich sestatus ) GETSEBOOL=$(mywhich getsebool ) SEMANAGE=$(mywhich semanage )

# Samba TESTPARM=$(mywhich testparm ) WBINFO=$(mywhich wbinfo )

# Apache APACHECTL=$(mywhich apachectl ) APACHE2CTL=$(mywhich apache2ctl )

# Packages APTCONFIG=$(mywhich apt-config ) RPM=$(mywhich rpm ) ZYPPER=$(mywhich zypper ) DPKG=$(mywhich dpkg ) DPKG_QUERY=$(mywhich dpkg-query ) EMERGE=$(mywhich emerge ) YUM=$(mywhich yum )

# Kernel Info MODINFO=$(mywhich modinfo ) SYSCTL=$(mywhich sysctl ) KSYMS=$(mywhich ksyms )

# H/W Info ACPI=$(mywhich acpi ) CARDCTL=$(mywhich cardclt ) DUMPE2FS=$(mywhich dumpe2fs ) DMIDECODE=$(mywhich dmidecode ) FDISK=$(mywhich fdisk ) BLKID=$(mywhich blkid ) HDPARM=$(mywhich hdparm ) HOSTNAME=$(mywhich hostname ) HWINFO=$(mywhich hwinfo ) HWCLOCK=$(mywhich hwclock ) LSMOD=$(mywhich lsmod ) LSPCI=$(mywhich lspci ) LSPNP=$(mywhich lspnp ) IPVSADM=$(mywhich ipvsadm ) LSUSB=$(mywhich lsusb ) LSDEV=$(mywhich lsdev ) LSHAL=$(mywhich lshal ) LSRAID=$(mywhich lsraid ) MDADM=$(mywhich mdadm ) PROCINFO=$(mywhich procinfo ) POWERMT=$(mywhich powermt ) SMARTCTL=$(mywhich smartclt ) SFDISK=$(mywhich sfdisk ) HWPARM=$(mywhich hwparm )

SCSI_ID=$(mywhich scsi_id ) ISCSIADM=$(mywhich iscsiadm ) MULTIPATH=$(mywhich multipath ) DMSETUP=$(mywhich dmsetup ) NTPQ=$(mywhich ntpq )

SYSP=$(mywhich sysp ) _3DDIAG=$(mywhich 3Ddiag ) LSHW=$(mywhich lshw ) SYSTOOL=$(mywhich systool ) SWAPON=$(mywhich swapon )

# Disks LVM=$(mywhich lvm ) LVDISPLAY=$(mywhich lvdisplay ) VGS=$(mywhich vgs ) PVSCAN=$(mywhich pvs ) VGSCAN=$(mywhich vgscan ) VGDISPLAY=$(mywhich vgdisplay ) LVMDISKSCAN=$(mywhich lvmdiskscan ) PVSCAN=$(mywhich pvscan ) DEBUGREISERFS=$(mywhich debugreiserfs ) HDPARM=$(mywhich hdparm ) EXPORTFS=$(mywhich exportfs ) REPQUOTA=$(mywhich repquota )

TUNE2FS=$(mywhich tune2fs )

# Veritas FS PVDISPLAY=$(mywhich pvdisplay ) VXDG=$(mywhich vxdg ) VXDISK=$(mywhich vxdisk ) VXPRINT=$(mywhich vxprint ) VXLICREP=$(mywhich vxlicrep )

# Veritas Cluster HASTATUS=$(mywhich hastatus ) HARES=$(mywhich hares ) HAGRP=$(mywhich hagrp ) HATYPE=$(mywhich hatype ) HAUSER=$(mywhich hauser ) LLTSTAT=$(mywhich lltstat ) GABCONFIG=$(mywhich gabconfig ) HACF=$(mywhich hacf )

# Redhat Cluster CLUSTAT=$(mywhich clustat ) CLUSVCADM=$(mywhich clusvcadm ) MKQDISK=$(mywhich mkqdisk )

# CRM Cluster CRM=$(mywhich crm ) CRM_MON=$(mywhich crm_mon ) CRM_VERIFY=$(mywhich crm_verify ) CIBADMIN=$(mywhich cibadmin )

# Network IFCONFIG=$(mywhich ifconfig ) IWCONFIG=$(mywhich iwconfig ) NETSTAT=$(mywhich netstat )

NFSSTAT=$(mywhich nfsstat ) ROUTE=$(mywhich route ) YPWHICH=$(mywhich ypwhich ) IP=$(mywhich ip ) MIITOOL=$(mywhich mii-tool ) IPTABLES=$(mywhich iptables ) IPCHAINS=$(mywhich ipchains ) ETHTOOL=$(mywhich ethtool ) BRCTL=$(mywhich brctl )

# Tuning IOSTAT=$(mywhich iostat ) VMSTAT=$(mywhich vmstat ) IPCS=$(mywhich ipcs ) MODPROBE=$(mywhich modprobe ) DEPMOD=$(mywhich depmod )

# Other RUNLEVEL=$(mywhich runlevel ) LSOF=$(mywhich lsof ) LPQ=$(mywhich lpq ) TAR=$(mywhich tar ) XVINFO=$(mywhich xvinfo ) POSTCONF=$(mywhich postconf )

# Virtual Server XM=$(mywhich xm ) VIRSH=$(mywhich virsh )

# Gentoo RC_UPDATE=$(mywhich rc-update )

}

############################################################################### Get the command line options##############################################################################

while getopts "d:vhV" OPTdo case "$OPT" in

d) if [ $OPTARG = "/" ] ; thenecho "ERROR: root directory selected as target! "echo "Exiting."exit 1

elif [ $OPTARG != "" ] ; thenTOPDIR=${OPTARG%%/}

fi ;;

v) VERBOSE="1" ;;

s) FULLSOFT="1" ;;

h) ShowUsage ;;

V) echo echo "LINUXexplo Version : $MYVERSION" echo exit 0

;; esac

done

############################################################################### MAIN ##############################################################################

if [ ${VERBOSE} -gt 0 ] ; then

if [ -t 0 ] ; thentput clear

fifi

LOGTOP="${TOPDIR}/linux" LOGDIR="${LOGTOP}/explorer.${HOSTID}.${MYSHORTNAME}-${MYDATE}" TARFILE="${LOGDIR}.tar.gz"NOTFNDLOG="${LOGDIR}/command_not_found.out"

if [ ! -d $LOGDIR ] ; then/bin/mkdir -p $LOGDIR

fi

# go away and find ALL my commands for this scriptfindCmds

Echo "Creating Explorer Directory : $LOGDIR"

if [ -d "$LOGTOP" ] ; then if [[ "${LOGTOP}" != "/" && "${LOGTOP}" != "/var" && "${LOGTOP}" != "/usr" ]] ; then

if [ ${VERBOSE} -gt 0 ] ; then

echo "Removing ${LOGTOP}"fi

$RM -rf ${LOGTOP}

fifi

# echo "LOGDIR : \"${TOPDIR}/linux/${MYHOSTNAME}-${DATE}/output\" "

# make sure this is a linux system

if [ "$($UNAME -s)" != "Linux" ] ; thenecho "ERROR: This script is only for Linux systems "exit 1

fi

# Make the directory I'm going to store my files

if [ ! -d $LOGDIR ] ; then$MKDIR -p $LOGDIR

if [ $? -ne 0 ] ; thenecho "ERROR: Creating directory $LOGDIR"exit 1

else$CHMOD 750 $LOGDIR

fifi

echo "$MYVERSION" > ${LOGDIR}/rev

# Create the default directories I'm going to use.

for Dir in etc system disks lp var logs hardware boot clusters virtualdo

if [ ! -d ${LOGDIR}/${Dir} ] ; then

$MKDIR -p ${LOGDIR}/${Dir}

if [ $? -ne 0 ] ; thenecho "ERROR: Creating directory $LOGDIR"exit 1

else$CHMOD 750 ${LOGDIR}/${Dir}

fifi

done

############################################################################### We need the password file and the group file so that we can work out who # owns what file. # Notice we are not copying the shadow file !!##############################################################################

$CP -p /etc/passwd ${LOGDIR}/etc/passwd$CP -p /etc/group ${LOGDIR}/etc/group

if [ -f /etc/sudoers ] ; then$CP -p /etc/sudoers ${LOGDIR}/etc/sudoers

fi

############################################################################### Release Section##############################################################################

Echo "Release Section"

$CP -p /etc/*-release ${LOGDIR}/system

if [ -f /etc/issue ] ; then $CP -p "/etc/issue" ${LOGDIR}/system/issuefi

if [ -f /etc/issue.net ] ; then$CP -p /etc/issue.net ${LOGDIR}/etc/issue.net

fi

if [ -f /etc/motd ] ; then$CP -p /etc/motd ${LOGDIR}/etc/motd

fi

############################################################################### Hardware/Proc Section##############################################################################

Echo "Hardware/Proc Section"

# Collecting information from the proc directory $MKDIR -p ${LOGDIR}/proc

$FIND /proc -type f -print 2>/dev/null | \ $GREP -v "/proc/kcore" | \ $GREP -v "/proc/bus/usb" | \ $GREP -v "/proc/xen/xenbus" | \ $GREP -v "/proc/acpi/event" | \ $GREP -v "pagemap" | \ $GREP -v "clear_refs" | \ $GREP -v "/proc/kmsg" > $TMPFILE

for i in $($CAT $TMPFILE)do Dirname=$(dirname $i) Filename=$(basename $i)

if [ ! -d ${LOGDIR}${Dirname} ] ; then $MKDIR -p ${LOGDIR}${Dirname} fi

if [ -e "$i" ] ; then$CAT "$i" > ${LOGDIR}${Dirname}/${Filename} 2>&1

fi

done

$RM -f $TMPFILE

############################################################################### Device Information##############################################################################

if [ -x $CARDCTL ] ; then$CARDCTL info > ${LOGDIR}/hardware/cardctl-info.out 2>&1$CARDCTL status > ${LOGDIR}/hardware/cardctl-status.out 2>&1# $CARDCTL ident > ${LOGDIR}/hardware/cardctl-ident.out 2>&1

fi

if [ -x $LSPCI ] ; then $LSPCI > ${LOGDIR}/hardware/lspci.out 2>&1$LSPCI -n > ${LOGDIR}/hardware/lspci-n.out 2>&1

$LSPCI | while read linedo

Bus=$(/bin/echo $line 2>/dev/null | awk '{ print $1 }') $LSPCI -vv -s $Bus > ${LOGDIR}/hardware/lspci_-vv_-s_${Bus}.out 2>&1

donefi

# Get the port names from the HDA cardsfor i in /sys/class/scsi_host/host*/device/fc_host\:host*/port_name do

if [ -f $i ] ; thenname=$( echo $i | sed 's/\//_/g' | sed 's/^_//g')

echo "Port Name : $(cat $i )" >> ${LOGDIR}/hardware/cat_${name}.out

fidone

# Get a listing of the /dev directory$MKDIR ${LOGDIR}/dev

$LS -laR /dev > ${LOGDIR}/dev/ls_-laR_dev.out

if [ -x "$LSUSB" ] ; then$LSUSB -xv > ${LOGDIR}/hardware/lsusb_-xv.out 2>&1$LSUSB -tv > ${LOGDIR}/hardware/lsusb_-tv.out 2>&1

fi

if [ -x "$LSDEV" ] ; then$LSDEV -type adaptor > ${LOGDIR}/hardware/lsdev_-type_adaptor.out 2>&1

fi

if [ -x "$ACPI" ] ; then$ACPI -V > ${LOGDIR}/hardware/acpi-V.out 2>&1

fi

if [ -x $FREE ] ; then $FREE > ${LOGDIR}/hardware/free.out$FREE -k > ${LOGDIR}/hardware/free_-k.out

fi

$LS -laR /dev > ${LOGDIR}/hardware/ls-laR_dev.out

if [ -d /udev ] ; then $LS -laR /udev > ${LOGDIR}/hardware/ls-laR_udev.outfi

# Tape informationif [ -f /etc/stinit.def ] ; then

$CP -p /etc/stinit.def ${LOGDIR}/etc/stinit.deffi

# Global Devices listif [ -x "$LSHAL" ] ; then

$LSHAL > ${LOGDIR}/hardware/lshal.outfi

if [ -x /usr/share/rhn/up2date_client/hardware.py ] ; then/usr/share/rhn/up2date_client/hardware.py > ${LOGDIR}/hardware/hardware.

py.out 2>&1fi

if [ -x "$SMARTCTL" ] ; thenfor device in $( $LS /dev/hd[a-z] /dev/sd[a-z] /dev/st[0-9] /dev/sg[0-9]

2> /dev/null)do

name=$( echo $device | sed 's/\//_/g' )${SMARTCTL} -a $device 2>/dev/null 1> ${LOGDIR}/hardware/smartct

l-a_${name}.outdone

fi

############################################################################### Collect Hardware information from the hwinfo program if installed##############################################################################

if [ -x $HWINFO ] ; then$HWINFO > ${LOGDIR}/hardware/hwinfo.out

2>&1

$HWINFO --isapnp > ${LOGDIR}/hardware/hwinfo_--isapnp.out 2>&1

$HWINFO --scsi > ${LOGDIR}/hardware/hwinfo_--scsi.out 2>&1

$HWINFO --framebuffer > ${LOGDIR}/hardware/hwinfo_--framebuffer.out 2>&1fi

if [ -x "$PROCINFO" ] ; then$PROCINFO > ${LOGDIR}/hardware/procinfo.out 2>&1

fi

if [ -x "$DMIDECODE" ] ; then$DMIDECODE > ${LOGDIR}/hardware/dmidecode.out 2>&1

fi

if [ -x $LSHW ] ; then$LSHW > ${LOGDIR}/hardware/lshw.out 2>&1

fi

############################################################################### Boot Section##############################################################################

Echo "Boot Section"

if [ -x "/sbin/lilo" ] ; then/sbin/lilo -q > $LOGDIR/system/lilo_-q 2>&1

fi

$LS -alR /boot > ${LOGDIR}/system/ls-alR_boot.out 2>&1

$MKDIR -p ${LOGDIR}/boot/grub

for i in /boot/grub/menu.lst /boot/grub/grub.conf \/boot/grub.conf /boot/grub/device.map

doif [ -f ${i} ] ; then

$CP -p ${i} ${LOGDIR}/${i}fi

done

if [ -f /etc/inittab ] ; then$CP -p /etc/inittab ${LOGDIR}/etc/inittab

fi

############################################################################### /etc Config Files Section##############################################################################

Echo "/etc Config Files Section"

for i in $( $FIND /etc -name "*.conf" -o -name "*.cf" -o -name "*.cnf" ) do

dirname="$(dirname $i)" filename="$(basename $i)"

if [ ! -d ${LOGDIR}/${dirname} ] ; then$MKDIR -p ${LOGDIR}/${dirname}

fi

$CP -p $i ${LOGDIR}/${dirname}/${filename}

done

if [ -f /etc/nologin.txt ] ; then$CP -p /etc/nologin.txt ${LOGDIR}/etc/nologin.txt

fi

$CP -p /etc/securetty ${LOGDIR}/etc/securetty$CP -p /etc/shells ${LOGDIR}/etc/shells

if [ -f /etc/krb.realms ] ; then$CP -p /etc/krb.realms ${LOGDIR}/etc/krb.realms

fi

############################################################################### Copy the /etc/profile.d scripts ##############################################################################

if [ -d /etc/profile.d ] ; then$CP -Rp /etc/profile.d ${LOGDIR}/etc

fi

############################################################################### Copy the /etc/modprobe.d scripts ##############################################################################

if [ -d /etc/profile.d ] ; then$CP -Rp /etc/modprobe.d ${LOGDIR}/etc

fi

############################################################################### New in Fedora 9 ##############################################################################

if [ -d /etc/event.d ] ; then$CP -Rp /etc/event.d ${LOGDIR}/etc

fi

############################################################################### Get all the pcmcia config information##############################################################################

if [ -d /etc/pcmcia ] ; then

if [ ! -d ${LOGDIR}/pcmcia ] ; then

$MKDIR -p ${LOGDIR}/etc/pcmcia fi

$CP -R -p /etc/pcmcia/*.opts ${LOGDIR}/etc/pcmcia

fi

############################################################################### Performance/System Section##############################################################################

Echo "Performance/System Section"

if [ -e /proc/loadavg ] ; then$CAT /proc/loadavg > ${LOGDIR}/system/loadavg.out

fi

if [ -e /proc/stat ] ; then$CAT /proc/stat > ${LOGDIR}/system/stat.out

fi

$DATE > ${LOGDIR}/system/date.out$FREE > ${LOGDIR}/system/free.out$PS auxw > ${LOGDIR}/system/ps_auxw.out$PS -lef > ${LOGDIR}/system/ps_-elf.out$PSTREE > ${LOGDIR}/system/pstree.out$HOSTNAME > ${LOGDIR}/system/hostname.out$IPCS -a > ${LOGDIR}/system/ipcs_-a.out$IPCS -u > ${LOGDIR}/system/ipcs_-u.out$IPCS -l > ${LOGDIR}/system/ipcs_-l.out$UPTIME > ${LOGDIR}/system/uptime.outulimit -a > ${LOGDIR}/system/ulimit_-a.out

if [ -x $VMSTAT ] ; then$VMSTAT -s > ${LOGDIR}/system/vmstat_-s.out

fi

############################################################################### OK not sure where this should go so I've put it here instead##############################################################################

if [ "$LSOF" != "" ] ; then$LSOF > ${LOGDIR}/system/lsof.out 2>&1

fi

############################################################################### Kernel Section##############################################################################

Echo "Kernel Section"

$SYSCTL -A > ${LOGDIR}/etc/sysctl_-A.out 2>&1$UNAME -a > ${LOGDIR}/system/uname_-a.out$RUNLEVEL > ${LOGDIR}/system/runlevel.out$WHO -r > ${LOGDIR}/system/who_-r.out

if [ -f /etc/conf.modules ] ; then$CP -p /etc/conf.modules ${LOGDIR}/etc/conf.modules

fi

if [ ! -d ${LOGDIR}/kernel/info ] ; then$MKDIR -p ${LOGDIR}/kernel/info

fi

$LSMOD | while read linedo

kernmod=$( echo $line | $AWK '{ print $1 }' )$MODINFO $kernmod > ${LOGDIR}/kernel/info/${kernmod}.out 2>&1

done

$LSMOD > ${LOGDIR}/kernel/lsmod.out 2>&1

if [ -x $KSYMS ] ; then $KSYMS > ${LOGDIR}/kernel/ksyms.out 2>&1

fi

$CP -p /lib/modules/$($UNAME -r)/modules.dep ${LOGDIR}/kernel/modules.dep

$MODPROBE -n -l -v > ${LOGDIR}/kernel/modprobe_-n-l-v.out 2>&1$DEPMOD -av > ${LOGDIR}/kernel/depmod_-av.out 2>&1$CAT /proc/modules > ${LOGDIR}/kernel/modules.out 2>&1

############################################################################### Just incase we have a debian system##############################################################################

if [ -f /etc/kernel-pkg.conf ] ; then$CP -p /etc/kernel-pkg.conf ${LOGDIR}/etc/kernel-pkg.conf

fi if [ -f /etc/kernel-img.conf ] ; then

$CP -p /etc/kernel-img.conf ${LOGDIR}/etc/kernel-img.conffi

############################################################################### Get the kernel configuration details from a 2.6 kernel##############################################################################

if [ -f /proc/config.gz ] ; thengunzip -c /proc/config.gz > ${LOGDIR}/kernel/config

fi

############################################################################### Hot Plug Section##############################################################################

Echo "Hot Plug Section"

if [ -d /etc/hotplug ] ; then

if [ ! -d ${LOGDIR}/etc/hotplug ] ; then

$MKDIR -p ${LOGDIR}/etc/hotplugfi

cd /etc/hotplug$CP -Rp * ${LOGDIR}/etc/hotplug/

fi

############################################################################### Disk Section##############################################################################

Echo "Disk Section"

# Check to see what is mounted

$DF -k > ${LOGDIR}/disks/df_-k.out 2>&1$DF -h > ${LOGDIR}/disks/df_-h.out 2>&1$DF -ki > ${LOGDIR}/disks/df_-ki.out 2>&1$DF -aki > ${LOGDIR}/disks/df_-aki.out 2>&1$DF -akih > ${LOGDIR}/disks/df_-akih.out 2>&1

if [ -x $SWAPON ] ; then$SWAPON -s > ${LOGDIR}/disks/swapon_-s.out 2>&1

fi

$MOUNT > ${LOGDIR}/disks/mount.out 2>&1$MOUNT -l > ${LOGDIR}/disks/mount_-l.out 2>&1

$CAT /proc/mounts > ${LOGDIR}/disks/mounts.out 2>&1

# fstab Information$CP -p /etc/fstab ${LOGDIR}/disks/fstab

# Display any quotas that my have been set$REPQUOTA -av > ${LOGDIR}/disks/repquota_-av 2>&1

############################################################################### Disk Format Information##############################################################################

DISKLIST=$($FDISK -l 2>/dev/null | grep "^/dev" | sed 's/[0-9]//g' | awk '{ print $1 }' | sort -u)

if [ -x $FDISK ] ; then$FDISK -l > ${LOGDIR}/disks/fdisk_-l.out 2>&1

fi

if [ -x $SFDISK ] ; then$SFDISK -l > ${LOGDIR}/disks/sfdisk_-l.out 2>&1$SFDISK -s > ${LOGDIR}/disks/sfdisk_-s.out 2>&1

fi

if [ -x $BLKID ] ; then$BLKID > ${LOGDIR}/disks/blkid.out 2>&1

fi

for DISK in $DISKLISTdo

NEWDISK=$(/bin/echo $DISK | sed s'/\/dev\///g' )

if [ -x $HDPARM ]; then$HDPARM -vIi $DISK > ${LOGDIR}/disks/hdparm_-vIi_${

NEWDISK} 2>&1fi

if [ -x $SFDISK ] ; then$SFDISK -l $DISK > ${LOGDIR}/disks/sfdisk_-l_-${N

EWDISK}.out 2>&1fi

if [ -x $FDISK ] ; then$FDISK -l $DISK > ${LOGDIR}/disks/fdisk_-l_-${NE

WDISK}.out 2>&1fi

done

if [ -x "$DUMPE2FS" ] ; then

PARTS=$($FDISK -l 2>/dev/null | grep "^/dev" | awk '{ print $1 }')

for parts in $PARTSdo

name=$(/bin/echo $parts | sed 's/\//_/g') $DUMPE2FS $parts > ${LOGDIR}/disks/dumpe2fs${name}.out 2>&1

done

fi

############################################################################### Collect Detailed SCSI information about the disks##############################################################################

if [ -x "$SCSI_ID" ] ; then

for i in $($LS sd[a-z] 2>/dev/null) do

if [ -b /dev/${i} ] ; then disk_name=$(/bin/echo /dev/${i} | sed 's/\//_/g')

$SCSI_ID -g -p 0x80 -d /dev/${i} -s /block/${i} \ > ${LOGDIR}/disks/scsi_id_-g_-p_0x80_${disk_name}.out 2>&1

$SCSI_ID -g -p 0x83 -d /dev/${i} -s /block/${i} \ > ${LOGDIR}/disks/scsi_id_-g_-p_0x83_${disk_name}.out 2>&1

fi

done

fi

if [ -x $SYSTOOL ] ; then $SYSTOOL -c scsi_host -v > ${LOGDIR}/disks/systool_-c_scsi_host_-v.out 2>&1fi

############################################################################### If we are using multi-pathings then print out the # multi-pathing information##############################################################################

if [ -x "$MULTIPATH" ] ; then $MULTIPATH -ll > ${LOGDIR}/disks/multipath_-ll.out 2>&1 $MULTIPATH -v2 > ${LOGDIR}/disks/multipath_-v2.out 2>&1

fi

if [ -x "$DMSETUP" ] ; then$DMSETUP ls > ${LOGDIR}/disks/dmsetup_ls.out 2>&1

fi

# Check to see what iscsi devices haveif [ -x "$ISCSIADM" ] ; then

$ISCSIADM -m session > ${LOGDIR}/disks/iscsiadm_-m_session.out 2>&1fi

# Check to see what emc powerpath devices we have if [ -x "$POWERMT" ] ; then

mkdir -p ${LOGDIR}/disks/emcpower

$POWERMT check_registration >${LOGDIR}/disks/emcpower/powermt_check_registration.out 2>&1

$POWERMT display path >${LOGDIR}/disks/emcpower/powermt_display_path.out 2>&1

$POWERMT display ports >${LOGDIR}/disks/emcpower/powermt_display_ports.out 2>&1

$POWERMT display paths class=all >${LOGDIR}/disks/emcpower/powermt_display_paths_class=all.out 2>&1

$POWERMT display ports dev=all >${LOGDIR}/disks/emcpower/powermt_display_ports_dev=all.out 2>&1

$POWERMT display dev=all >${LOGDIR}/disks/emcpower/powermt_display_dev=all.out 2>&1

# Get the partition details for the EMC devicesfor emcdevice in $(ls /dev/emcpower*)do

emc_disk_name=$(/bin/echo ${emcdevice} | sed 's/\//_/g')

$FDISK -l $emcdevice >${LOGDIR}/disks/emcpower/fdisk_-l_${emc_disk_name}.out 2>&1

done

fi

############################################################################### Veritas Volume Manager / Symantec Veritas Storage Foundation Information################################################################################ Changes - "Vincent S. Cojot" - 04-11-2008 # added licence checks# VxVM/VxFS Configuration Backups# Some minor bug fixes###############################################################################

if [ -d /etc/vx/licenses/lic ] ; then Echo "Veritas Volume Manager / Symantec Veritas Storage Foundation Section" Echo "VxVM/VxFS/VCS/VVR licensing Section" if [ ! -d ${LOGDIR}/etc/vx/licenses/lic ] ; then $MKDIR -p ${LOGDIR}/etc/vx/licenses/lic fi $CP -Rp /etc/vx/licenses/lic ${LOGDIR}/etc/vx/licenses/ $VXLICREP -e > ${LOGDIR}/system/vxlicrep_-e.out 2>&1fi

if [ -d /etc/vx/cbr/bk ] ; then Echo "VxVM/VxFS Configuration Backups"

if [ ! -d ${LOGDIR}/etc/vx/cbr/bk ] ; then $MKDIR -p ${LOGDIR}/etc/vx/cbr/bk fi

$CP -Rp /etc/vx/cbr/bk ${LOGDIR}/etc/vx/cbr/fi

if [ -d /dev/vx ] ; then

Echo "VxVM live configuration"

if [ ! -d ${LOGDIR}/disks/vxvm ] ; then$MKDIR -p ${LOGDIR}/disks/vxvm$MKDIR -p ${LOGDIR}/disks/vxvm/logs$MKDIR -p ${LOGDIR}/disks/vxvm/disk_groups

fi

$LS -laR /dev/vx > ${LOGDIR}/disks/vxvm/ls-lR_dev_vx.out 2>&1

if [ -x $VXDISK ] ; then$VXDISK list > ${LOGDIR}/disks/vxvm/vxdisk_li

st.out 2>&1$VXDISK -o alldgs list > ${LOGDIR}/disks/vxvm/vxdisk_-o

_alldgs_list.out 2>&1$VXPRINT -Ath > ${LOGDIR}/disks/vxvm/vxprint_-

Ath.out 2>&1$VXPRINT -h > ${LOGDIR}/disks/vxvm/vxprint_-

h.out 2>&1$VXPRINT -hr > ${LOGDIR}/disks/vxvm/vxprint_-

hr.out 2>&1$VXPRINT -th > ${LOGDIR}/disks/vxvm/vxprint_-

th.out 2>&1$VXPRINT -thrL > ${LOGDIR}/disks/vxvm/vxprint_-

thrL.out 2>&1fi

if [ -x $VXDG ] ; then$VXDG -q list > ${LOGDIR}/disks/vxvm/vxdg_-q_-

list.out 2>&1fi

#------------------------------------------------------------------------ # Collect individual volume information #------------------------------------------------------------------------

for i in $($VXDG -q list|awk '{print $1}')do

$VXDG list $i > ${LOGDIR}/disks/vxvm/disk_groups/vxdg_list_${i}.out

$VXDG -g $i free > ${LOGDIR}/disks/vxvm/disk_groups/vxdg_-g_free_${i}.out

$VXPRINT -vng $i > ${LOGDIR}/disks/vxvm/disk_groups/vxprint_-vng_${i}.out

VOL=$(cat ${LOGDIR}/disks/vxvm/disk_groups/vxprint_-vng_${i}.out)

$VXPRINT -hmQqg $i $VOL \> ${LOGDIR}/disks/vxvm/disk_groups/vxprint_-hmQqg_4vxmk=

${i}.out 2>&1

$VXPRINT -hmQqg $i \> ${LOGDIR}/disks/vxvm/disk_groups/vxprint_-hmQqg=${i}.o

ut 2>&1

done

fi

############################################################################### Get the filesystems Characteristics##############################################################################

for i in $($DF -kl | grep ^/dev | awk '{ print $1 }')do

if [ -x $TUNE2FS ] ; then name=$(/bin/echo $i | sed 's/\//_/g')

$TUNE2FS -l $i > ${LOGDIR}/disks/tunefs_-l_${name}.out 2>&1 fi

done

############################################################################### NFS Information##############################################################################

# Copy NFS config files aroundif [ -f /etc/auto.master ] ; then

$CP -p /etc/auto* ${LOGDIR}/etcfi

# lets see what we have really exported if [ -x $EXPORTFS ] ; then

$EXPORTFS -v > ${LOGDIR}/disks/exportfs_-v.out 2>&1fi

# This is what we have configured to be exported if [ -f /etc/exports ] ; then

$CP -p /etc/exports ${LOGDIR}/etc/exportsfi

if [ -x "$NFSSTAT" ] ; then$NFSSTAT -a > ${LOGDIR}/disks/nfsstat_-a.out 2>&1

fi

############################################################################### Raid Information##############################################################################

if [ -f /etc/raidtab ] ; then$CP -p /etc/raidtab ${LOGDIR}/etc/raidtab

fi

$MKDIR ${LOGDIR}/disks/raid

if [ -x "$LSRAID" ] ; thenfor i in $( $LS /dev/md[0-9]* 2>/dev/null )do

name=$(/bin/echo $i | sed 's/\//_/g') $LSRAID -a $i > ${LOGDIR}/disks/raid/lsraid_-a_${name}.out >

/dev/null 2>&1done

fi

if [ -x "$MDADM" ] ; thenfor i in $( $LS /dev/md[0-9]* 2>/dev/null )do

name=$( echo $i | sed 's/\//_/g' ) $MDADM --detail $i > ${LOGDIR}/disks/raid/mdadm_--detail_${n

ame}.out > /dev/null 2>&1

if [ ! -s ${LOGDIR}/disks/raid/mdadm--detail_${name}.out ] ; then $RM -f ${LOGDIR}/disks/raid/mdadm--detail_${name}.out

fidone

fi

############################################################################### LVM Information##############################################################################

LVMDIR=${LOGDIR}/disks/lvm

$MKDIR -p ${LVMDIR}

if [ -x "$LVDISPLAY" ] ; then$LVDISPLAY -vv > ${LVMDIR}/lvdisplay_-vv.out 2>&1$VGDISPLAY -vv > ${LVMDIR}/vgdisplay_-vv.out 2>&1$VGSCAN -vv > ${LVMDIR}/vgscan_-vv.out 2>&1$LVMDISKSCAN -v > ${LVMDIR}/lvmdiskscan_-v.out 2>&1$PVSCAN -v > ${LVMDIR}/pvscan_-v.out 2>&1$PVDISPLAY -v > ${LVMDIR}/pvdisplay_-v.out 2>&1$VGS -v > ${LVMDIR}/vgs-v.out 2>&1$PVSCAN -v > ${LVMDIR}/pvscan-v.out 2>&1

fi

if [ -x "$LVM" ] ; then$LVM dumpconfig > ${LVMDIR}/lvm_dumpconfig.out 2>&1$LVM lvs > ${LVMDIR}/lvm_lvs.out 2>&1

fi

############################################################################### DM Information##############################################################################

# Work out which dm device is being used by each filesystemgrep dm-[0-9] /proc/diskstats | awk '{print $1, $2, $3}' | while read linedo

Major=$(echo $line | awk '{print $1}' ) Minor=$(echo $line | awk '{print $2}' )Device=$(echo $line | awk '{print $3}' )

List=$(ls -la /dev/mapper | grep "${Major}, ${Minor}" | awk '{print $(NF)}')

echo "$Device = $List " >> ${LOGDIR}/disks/dm-info.out

done

############################################################################### Software Section##############################################################################

Echo "Software Section"

$MKDIR -p ${LOGDIR}/software/rpm-packages

if [ -x "$RPM" ] ; then

if [ -x "$CHKCONFIG" ] ; then$CHKCONFIG --list > ${LOGDIR}/software/chkconfig--list.out 2>&1

fi

## Short Description of all packages installed#

echo "Package_Name Version Size Description" > ${LOGDIR}/software/rpm-qa--queryformat.out

echo "===================================================================================" >> ${LOGDIR}/software/rpm-qa--queryformat.out

$RPM -qa --queryformat '%-25{NAME} %-16{VERSION} %-10{RELEASE} %-10{DISTRIBUTION} %-10{SIZE} %-10{INSTALLTIME:date} %{SUMMARY}\n' | sort >> ${LOGDIR}/software/rpm-qa--queryformat.out 2>&1

## Long Description of all packages installed#

$RPM -qa > ${LOGDIR}/software/rpm_-qa 2>&1

$CAT ${LOGDIR}/software/rpm_-qa | while read line do

$RPM -qi $line > ${LOGDIR}/software/rpm-packages/${line}.out 2>&1

if [ $? -ne 0 ] ; thenecho "ERROR: ${line} problem"

fidone

# print a list os installed packages sorted by install time:$RPM -qa -last | tac > ${LOGDIR}/software/rpm-packages/rpm_-qa_-last.out

############################################################## If you enable verification then this then it's going to # take a some time to complete........#############################################################

if [ ${FULLSOFT} -gt 0 ] ; then $RPM -Va > ${LOGDIR}/software/rpm-Va.out 2>&1

fifi

if [ -f /usr/lib/rpm/rpmrc ] ; then $CP -p /usr/lib/rpm/rpmrc ${LOGDIR}/software/rpmrc

fi

# Make a copy of the yum config files so that we can compare themYUMDIR=${LOGDIR}/software/yum

if [ -d /etc/yum.repos.d ] ; then$MKDIR -p $YUMDIR/yum.repos.d$CP /etc/yum.repos.d/* $YUMDIR/yum.repos.d/

fi

if [ -x "$YUM" ] ; then$YUM list installed > ${YUMDIR}/yum_list_installed.out 2>&1$YUM info installed > ${YUMDIR}/yum_info_installed.out 2>&1$YUM -v repolist all > ${YUMDIR}/yum_-v_repolist_all.out 2>&1

fi

############################################################################### Some Debian specific info here for packages##############################################################################

if [ -f /var/lib/dpkg/available ] ; then

$MKDIR -p ${LOGDIR}/var/lib/dpkg

if [ -d /etc/apt ] ; then$MKDIR -p ${LOGDIR}/etc/apt

fi

if [ -f /etc/apt/sources.list ] ; then$CP -p /etc/apt/sources.list ${LOGDIR}/etc/apt/sources.list

fi

if [ -f /etc/apt/apt.conf ] ; then$CP -p /etc/apt/apt.conf ${LOGDIR}/etc/apt/apt.conf

fi

if [ -f /etc/apt/apt.conf ] ; then$CP -p /etc/apt/apt.conf ${LOGDIR}/etc/apt/apt.conf

fi

if [ -f /var/lib/dpkg/status ] ; then$CP -p /var/lib/dpkg/status ${LOGDIR}/var/lib/dpkg/status

fi

if [ -x "$DPKG" ] ; then $DPKG --list > ${LOGDIR}/software/dpkg_--list

.out $DPKG -al > ${LOGDIR}/software/dpkg_-al.ou

t $DPKG --get-selections > ${LOGDIR}/software/dpkg_-get-s

elections.outfi

if [ -x "$DPKG_QUERY" ] ; then $DPKG_QUERY -W > ${LOGDIR}/software/dpkg-query_

-W.out

fi

if [ -x /usr/bin/apt-config ] ; then/usr/bin/apt-config dump > ${LOGDIR}/software/apt-config_

dump.outfi

fi

############################################################################### Some SuSE specific info here for packages##############################################################################

if [ -x "$ZYPPER" ] ; then

$ZYPPER repos > ${LOGDIR}/software/zypper_repos 2>&1$ZYPPER locks > ${LOGDIR}/software/zypper_locks 2>&1$ZYPPER patches > ${LOGDIR}/software/zypper_patches 2>&1$ZYPPER packages > ${LOGDIR}/software/zypper_packages 2>&1$ZYPPER patterns > ${LOGDIR}/software/zypper_patterns 2>&1$ZYPPER products > ${LOGDIR}/software/zypper_products 2>&1$ZYPPER services > ${LOGDIR}/software/zypper_services 2>&1$ZYPPER licenses > ${LOGDIR}/software/zypper_licenses 2>&1$ZYPPER targetos > ${LOGDIR}/software/zypper_targetos 2>&1$ZYPPER list-updates > ${LOGDIR}/software/zypper_list-updates 2>&1

fi

############################################################################### This Section is for Gentoo - so we can work out what packages are installed# Provided by Adam Bills ##############################################################################

GENTOPKGS=${LOGDIR}/software/gento_kgs.outif [ -d /var/db/pkg ] ; then

( find /var/db/pkg -type f -name environment.bz2 | while read x; do bzcat $x | \

awk -F= '{if ($1 == "CATEGORY"){

printf "%s ", $2;}if ($1 == "PN"){

printf "%s ",$2;}

if ($1 == "PV"){print $2;

}}' ; done

) >> $GENTOPKGSfi

# Show the bootup infoif [ -x $RC_UPDATE ] ; then

$RC_UPDATE show >> ${LOGDIR}/software/rc-update_show.out

fi

############################################################################### sysconfig Section##############################################################################

Echo "sysconfig Section"

if [ -d /etc/sysconfig ] ; then

if [ ! -d ${LOGDIR}/etc/sysconfig ] ; then$MKDIR -p ${LOGDIR}/etc/sysconfig

fi

$CP -p -R /etc/sysconfig/* ${LOGDIR}/etc/sysconfigfi

############################################################################### RHN Section##############################################################################

if [ -d /etc/sysconfig/rhn ] ; then

Echo "RedHat Network Section"

RDIR=${LOGDIR}/rhn$MKDIR -p ${RDIR}

if [ -d /etc/rhn ] ; then

$CP -pR /etc/rhn/ ${LOGDIR}/etc/rhn/

if [ -f /etc/sysconfig/rhn/systemid ] ; then if [ -x /usr/bin/xsltproc ] ; then

/usr/bin/xsltproc $UTILDIR/text.xsl $RDIR/systemid \ > $ROOT/$RHNDIR/systemid 2>&1

fi fi

fifi

# if [ -x /usr/bin/rhn-schema-version ] ; then# /usr/bin/rhn-schema-version >$RDIR}/# fi

# if [ -x /usr/bin/rhn-charsets ] ; then# /usr/bin/rhn-charsets# fi

############################################################################### Systems Log Section##############################################################################

Echo "Systems Log Section"

$CP -R -p /var/log/* ${LOGDIR}/logs

$DMESG > ${LOGDIR}/logs/dmesg.out$LAST > ${LOGDIR}/logs/lastlog

############################################################################### SELINUX##############################################################################

Echo "SElinux Section"

SELINUXDIR=${LOGDIR}/selinux$MKDIR -p ${SELINUXDIR}

if [ -x $SESTATUS ] ; then$SESTATUS -bv > ${SELINUXDIR}/sestatus_-bv.out 2>&1

fi

if [ -x $SEMANAGE ] ; then$SEMANAGE fcontexts -l > ${SELINUXDIR}/semanage_fcontexts_-l.out 2>&1

fi

if [ -x $GETSEBOOL ] ; then$GETSEBOOL -a > ${LOGDIR}/selinux/getsebool_-a.out 2>&1

elseecho "getsebool not installed " > ${LOGDIR}/selinux/getsebool_-a.out 2>

&1fi

############################################################################### Virtual Servers Information##############################################################################

VIRT=${LOGDIR}/virtual

#------------------------------------------------------------------------# Xen#------------------------------------------------------------------------

if [ -d /etc/xen ] ; then

Echo "Xen Section"

$MKDIR -p ${VIRT}/xen

XENETC=${LOGDIR}/xen

if [ ! -d $XENETC ] ; thenmkdir -p $XENETC

fi

$CP -Rp /etc/xen/* ${XENETC}/

$MKDIR -p ${VIRT}/xen

if [ -x $XM ] ; then

$XM list > $VIRT/xen/xm_list.out 2>&1$XM info > $VIRT/xen/xm_info.out 2>&1$XM logs > $VIRT/xen/xm_log.out 2>&1$XM dmesg > $VIRT/xen/xm_dmesg.out 2>&1$XM vcpu-list > $VIRT/xen/xm_vcpu-list.out 2>&1

for myHost in $($XM list 2>/dev/null | egrep -v "VCPUs |^Domain-0")

do$XM network-list $myHost > $VIRT/xen/xm_network-l

ist_${myHost}.out 2>&1$XM uptime $myHost > $VIRT/xen/xm_uptime_${

myHost}.out 2>&1$VIRSH dominfo $myHost > $VIRT/xen/virsh_dominf

o_${myHost}.out 2>&1done

fifi

############################################################################### VirtLib Information##############################################################################

#------------------------------------------------------------------------# Virtlib#------------------------------------------------------------------------

if [ -x $VIRSH ] ; then

Echo "LibVirt Section"

$MKDIR -p ${VIRT}/libvirt

$VIRSH list --all 2>/dev/null | \grep -v "Id Name" | \egrep -v "\--|^$" | \awk '{print $2}' | while read linedo

$VIRSH dominfo $line >> ${VIRT}/libvirt/virsh_dominfo_${line}.out 2>&1

$VIRSH dumpxml $line >> ${VIRT}/libvirt/virsh_dumpxml_${line}.out 2>&1

done

$VIRSH list --all > ${VIRT}/libvirt/virsh_list_--all.out 2>&1fi

############################################################################### yp services##############################################################################

Echo "YP Services Section"YPDIR=${LOGDIR}/yp$MKDIR -p ${YPDIR}

if [ -x "$YPWHICH" ] ; then$YPWHICH -m > ${YPDIR}/ypwhich-m.out 2>&1

fi

if [ -f /etc/domainname ] ; then$CP -p /etc/domainname ${LOGDIR}/etc/

$LS -lR /var/yp/$(cat /etc/domainname) > ${YPDIR}/ls_-lR.out 2>&1

fi

############################################################################### Networking Section##############################################################################

Echo "Networking Section"

for i in $($LS -d /etc/host* )do

filename=$(basename $i)$CP -p $i ${LOGDIR}/etc/${filename}

done

for i in $( $LS -d /etc/ftp* 2>/dev/null )do

filename=$(basename $i)$CP -p $i ${LOGDIR}/etc/$filename

done

$CP -p /etc/services ${LOGDIR}/etc/services

if [ -f /etc/HOSTNAME ] ; then$CP -p /etc/HOSTNAME ${LOGDIR}/etc/HOSTNAME

fi

if [ -f /etc/hostname ] ; then$CP -p /etc/hostname ${LOGDIR}/etc/hostname

fi

if [ -f /etc/networks ] ; then$CP -p /etc/networks ${LOGDIR}/etc/networks

fi

if [ -f /etc/hosts.allow ] ; then$CP -p /etc/hosts.allow ${LOGDIR}/etc/hosts.allow

fi

if [ -f /etc/hosts.deny ] ; then$CP -p /etc/hosts.deny ${LOGDIR}/etc/hosts.deny

fi

if [ -f /etc/shells ] ; then$CP -p /etc/shells ${LOGDIR}/etc/shells

fi

if [ -f /etc/network/interfaces ] ; then

if [ ! -d ${LOGDIR}/etc/network/interfaces ] ; then $MKDIR -p ${LOGDIR}/etc/network/interfacesfi

$CP -p /etc/network/interfaces ${LOGDIR}/etc/network/interfaces

fi

$MKDIR -p ${LOGDIR}/network

$IFCONFIG -a > ${LOGDIR}/network/ifconfig_-a.out 2>&1$NETSTAT -rn > ${LOGDIR}/network/netstat_-rn.out 2>&1$NETSTAT -lan > ${LOGDIR}/network/netstat_-lan.out 2>&1$NETSTAT -lav > ${LOGDIR}/network/netstat_-lav.out 2>&1$NETSTAT -tulpn > ${LOGDIR}/network/netstat_-tulpn.out 2>&1$NETSTAT -ape > ${LOGDIR}/network/netstat_-ape.out 2>&1$NETSTAT -uan > ${LOGDIR}/network/netstat_-uan.out 2>&1$NETSTAT -s > ${LOGDIR}/network/netstat_-s.out 2>&1$ROUTE -nv > ${LOGDIR}/network/route_-nv.out 2>&1

if [ -x "$IP" ] ; then$IP add > ${LOGDIR}/network/ip_add.out 2>&1$IP route > ${LOGDIR}/network/ip_route.out 2>&1$IP link > ${LOGDIR}/network/ip_link.out 2>&1$IP rule > ${LOGDIR}/network/ip_rule.out 2>&1

fi

if [ -x "$IWCONFIG" ] ; then$IWCONFIG > ${LOGDIR}/network/iwconfig.out 2>&1

fi

if [ -x "${MIITOOL}" ] ; then ${MIITOOL} > ${LOGDIR}/network/mii-tool.out 2>&1

fi

## Collect bridging information#if [ -x "${BRCTL}" ] ; then

$BRCTL show > ${LOGDIR}/network/brctl_show.out 2>&1

for myBridge in $($BRCTL show | grep -v "STP enabled" | grep ^[a-zA-Z] | awk '{ print $1}') do

$BRCTL showmacs $myBridge > ${LOGDIR}/network/btctl_showmacs_${myBridge}.out 2>&1 $BRCTL showstp $myBridge > ${LOGDIR}/network/btctl_showstp_${myBridge}.out 2>&1

done

fi

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

# Get the iptable information##############################################################################

if [ -x "$IPTABLES" ] ; then$IPTABLES -L > ${LOGDIR}/network/iptables-L.out$IPTABLES -t filter -nvL > ${LOGDIR}/network/iptables-t_filter-nv

L.out$IPTABLES -t mangle -nvL > ${LOGDIR}/network/iptables-t_mangle-nv

L.out$IPTABLES -t nat -nvL > ${LOGDIR}/network/iptables_-t_nat_-nvL

.out

elseecho "no iptables in kernel" > ${LOGDIR}/network/iptables-NO-IP-TABLES

fi

############################################################################### List the ipchains rules##############################################################################

if [ -x "$IPCHAINS" ] ; then$IPCHAINS -L -n > ${LOGDIR}/network/ipchains_-L_-n.out

fi

############################################################################### Lets now check the network cards speeds##############################################################################

if [ -x "$ETHTOOL" ] ; then

for version in 4 6do

INTERFACES=$( cat /proc/net/dev | grep "[0-9]:" | awk -F: '{print $1 }' )

for i in $INTERFACES do

$ETHTOOL $i > ${LOGDIR}/network/ethtool_ipv${version}_${i}.out 2>&1 $ETHTOOL -i $i >> ${LOGDIR}/network/ethtool_ipv${version}_-i_${i}.out 2>&1 $ETHTOOL -S $i >> ${LOGDIR}/network/ethtool_ipv${version}_-S_${i}.out 2>&1

donedone

fi

############################################################################### xinetd Section##############################################################################

Echo "xinetd Section"

if [ -d /etc/xinet.d ] ; thenXINETD=${LOGDIR}/etc/xinet.d

$MKDIR -p ${XINETD}

for i in $($LS -d /etc/xinetd.d/* )do

filename=$(basename $i)$CP -p $i ${XINETD}/$filename

donefi

if [ -f /etc/xinetd.log ] ; then$CP -p /etc/xinetd.log ${LOGDIR}/etc/xinetd.log

fi

############################################################################### DNS Section##############################################################################

Echo "DNS Section"

if [ -f /etc/named.boot ] ; then$CP -p /etc/named.boot ${LOGDIR}/etc/named.boot

fi

DNSDIR=""# if [ -f "/etc/named.conf" ] ; then# DNSDIR=$($GREP -i directory /etc/named.conf | \# $GREP -v ^# | \# $GAWK '{ print $2 ;}' | \# $SED s/\"//g|/bin/sed s/\;//g # )# fi

if [ "${DNSDIR}" != "" ] ; then

if [ ! -d ${LOGDIR}${DNSDIR} ] ; then$MKDIR -p ${LOGDIR}${DNSDIR}

fi

cd ${DNSDIR} $TAR cf - . 2>/dev/null | ( cd ${LOGDIR}${DNSDIR} ; tar xpf - ) > /dev/

null 2>&1fi

############################################################################### Cluster Section##############################################################################

CLUSTERDIR=${LOGDIR}/clusters

Echo "Cluster Section"

#--------------------------------------------------------------------

# Oracles OCFS2 cluster filesystems#--------------------------------------------------------------------

if [ -f /etc/ocfs2/cluster.conf ] ; then

if [ ! -d ${LOGDIR}/etc/ocfs2 ] ; then$MKDIR -p ${LOGDIR}/etc/ocfs2

fi

$CP -p /etc/ocfs2/cluster.conf ${LOGDIR}/etc/ocfs2/cluster.conf

$MKDIR -p ${CLUSTERDIR}/ocfs2$CP -p /etc/ocfs2/cluster.conf ${CLUSTERDIR}/ocfs2/cluster.conf

fi

#--------------------------------------------------------------------# Redhat Cluster#--------------------------------------------------------------------

if [ -x $CLUSTAT ] ; then

Echo "Veritas Cluster Section"

MyClusterDir=${CLUSTERDIR}/redhatmkdir -p ${CLUSTERDIR}/redhat

$CLUSTAT > $MyClusterDir/clustat.out 2>&1$CLUSTAT -f > $MyClusterDir/clustat_-f.out 2>&1$CLUSTAT -l > $MyClusterDir/clustat_-l.out 2>&1$CLUSTAT -I > $MyClusterDir/clustat_-I.out 2>&1$CLUSTAT -v > $MyClusterDir/clustat_-v.out 2>&1$CLUSTAT -x > $MyClusterDir/clustat_-x.out 2>&1

$CLUSVCADM -v > $MyClusterDir/clusvcadm_-x.out 2>&1$CLUSVCADM -S > $MyClusterDir/clusvcadm_-S.out 2>&1

fi

## List out Quorum devices#if [ -x $MKQDISK ] ; then

$MKQDISK -L >> $MyClusterDir/mkqdisk_-L.out 2>&1fi

## Copy the cluster config files over#if [ -f /etc/cluster.xml ] ; then

$CP -p /etc/cluster.xml ${LOGDIR}/etc/cluster.xml$CP -p /etc/cluster.xml $MyClusterDir/cluster.xml

fi

if [ -d /etc/cluster ] ; then$CP -Rp /etc/cluster/* ${LOGDIR}/etc/cluster/

$CP -p /etc/cluster/* $MyClusterDir/fi

#--------------------------------------------------------------------# Veritas Cluster#--------------------------------------------------------------------

if [ -f /etc/VRTSvcs/conf/config/main.cf ] ; then

Echo "Veritas Cluster Section"

VCSDIR=${CLUSTERDIR}/veritas

if [ ! -d $VCSDIR ] ; then $MKDIR -p ${VCSDIR} fi

$MKDIR -p ${LOGDIR}/etc/VRTSvcs/conf/config $CP -p /etc/VRTSvcs/conf/config/* ${LOGDIR}/etc/VRTSvcs/conf/config

if [ -d /var/VRTSvcs/log ] ; then$MKDIR -p ${LOGDIR}/var/VRTSvcs/log$CP -p /var/VRTSvcs/log/* ${LOGDIR}/var/VRTSvcs/log

fi

$HASTATUS -sum > ${VCSDIR}/hastatus_-sum.out 2>&1 $HARES -list > ${VCSDIR}/hares_-list.out 2>&1 $HAGRP -list > ${VCSDIR}/hagrp_-list.out 2>&1 $HATYPE -list > ${VCSDIR}/hatype_-list.out 2>&1 $HAUSER -list > ${VCSDIR}/hauser_-list.out 2>&1 $LLTSTAT -vvn > ${VCSDIR}/lltstat_-vvn.out 2>&1 $GABCONFIG -a > ${VCSDIR}/gabconfig_-a.out 2>&1

$HACF -verify /etc/VRTSvcs/conf/config/main.cf > ${VCSDIR}/hacf-verify.out 2>&1

$CP -p /etc/llthosts ${LOGDIR}/etc $CP -p /etc/llttab ${LOGDIR}/etc $CP -p /etc/gabtab ${LOGDIR}/etc

fi

#--------------------------------------------------------------------# CRM/PaceMaker Cluster#--------------------------------------------------------------------

Echo "CRM Cluster Section"

CRMDIR=${CLUSTERDIR}/crm

if [ -x $CRM_MON ] ; then

$MKDIR -p ${CRMDIR}

$CRM_MON --version > ${CRMDIR}/crm_mon_--version.out

if [ -x $CRM ] ; then $CRM status > ${CRMDIR}/crm_status.out$CRM configure show > ${CRMDIR}/crm_configure_show.o

ut$CRM configure show xml > ${CRMDIR}/crm_configure_show_x

ml.out$CRM ra classes > ${CRMDIR}/crm_ra_classes.out$CRM ra list ocf heartbeat > ${CRMDIR}/crm_ra_list_ocf_hear

tbeat.out$CRM ra list ocf pacemaker > ${CRMDIR}/crm_ra_list_ocf_pace

maker.outfi

if [ -x $CRM_VERIFY ] ; then $CRM_VERIFY -L > ${CRMDIR}/crm_verify_-L.out

fi

if [ -x $CIBADMIN ] ; then $CIBADMIN -Ql > ${CRMDIR}/cibadmin_-Ql.out

fifi

############################################################################### Crontab Section##############################################################################

Echo "Crontab Section"

$MKDIR -p ${LOGDIR}/etc/cron$CP -R -p /etc/cron* ${LOGDIR}/etc

if [ -d /var/spool/cron ] ; then $MKDIR -p ${LOGDIR}/var/spool/cron cd /var/spool/cron $TAR cf - . | ( cd ${LOGDIR}/var/spool/cron ; tar xpf - )fi

############################################################################### Printer Section##############################################################################

Echo "Printer Section"

PRINTDIR=${LOGDIR}/lp

$MKDIR -p ${PRINTDIR}$MKDIR -p ${PRINTDIR}/general$MKDIR -p ${LOGDIR}/etc/printcap

if [ -x /usr/bin/lpstat ] ; then /usr/bin/lpstat -t > ${PRINTDIR}/lpstat_-t.out 2>&1

fi

if [ -x /usr/sbin/lpc ] ; then /usr/sbin/lpc status > ${PRINTDIR}/lpstat_status.out 2>&1

fi

if [ -f /etc/printcap ] ; then$CP /etc/printcap ${LOGDIR}/etc/printcap

fi

if [ -d /etc/cups ] ; then$MKDIR -p ${LOGDIR}/etc/cups$CP -p -R /etc/cups/* ${LOGDIR}/etc/cups

fi

/usr/bin/lpq > ${PRINTDIR}/general/lpq.out 2>&1

if [ -x /usr/bin/lpq.cups ] ; then/usr/bin/lpq.cups > ${PRINTDIR}/lpq.cups.out 2>&1

fi

############################################################################### openldap Section##############################################################################

Echo "Openldap Section"

if [ -d /etc/openldap ] ; then$MKDIR -p ${LOGDIR}/etc/openldap$CP -p -R /etc/openldap/* ${LOGDIR}/etc/openldap

fi

############################################################################### pam Section##############################################################################

Echo "Pam Section"

$MKDIR -p ${LOGDIR}/etc/pam

$CP -p -R /etc/pam.d/* ${LOGDIR}/etc/pam/

############################################################################### Sendmail Section##############################################################################

Echo "Sendmail Section"

$MKDIR -p ${LOGDIR}/etc/mail

if [ -f /etc/sendmail.cf ] ; then$CP -p /etc/sendmail.cf ${LOGDIR}/etc/sendmail.cf

fi

if [ -f /etc/sendmail.cw ] ; then

$CP -p /etc/sendmail.cw ${LOGDIR}/etc/sendmail.cwfi

if [ -d /etc/mail ] ; thenfor i in $($LS -d /etc/mail/* | $GREP -v \.db) ; do

$CP -R -p $i ${LOGDIR}/etc/maildone

fi

if [ -f /etc/aliases ] ; then$CP -p /etc/aliases ${LOGDIR}/etc/aliases

fi

if [ -f /etc/mail/aliases ] ; then$CP -p /etc/mail/aliases ${LOGDIR}/etc/mail/aliases

fi

############################################################################### Postfix Section##############################################################################

Echo "Postfix Section"

if [ -d /etc/postfix ] ; thenPOSTDIR=${LOGDIR}/etc/postfix$MKDIR -p $POSTDIR$CP -p -R /etc/postfix/* ${POSTDIR}$POSTCONF -v > ${POSTDIR}/postconf_-v.out 2>&1$POSTCONF -l > ${POSTDIR}/postconf_-l.out 2>&1

fi

############################################################################### Exim Section##############################################################################

Echo "Exim Section"

if [ -d /etc/exim ] ; then EXIMDIR=${LOGDIR}/etc $CP -p -R /etc/exim ${EXIMDIR}fi

############################################################################### Time Section##############################################################################

Echo "Time Section"

TIMEDIR=${LOGDIR}/etc/time

if [ ! -d ${TIMEDIR} ] ; then$MKDIR -p ${TIMEDIR}

fi

$DATE > ${TIMEDIR}/date

if [ -f /etc/timezone ] ; then $CP -p /etc/timezone ${TIMEDIR}/timezone

fi

if [ -f /usr/share/zoneinfo ] ; then $CP -p /usr/share/zoneinfo ${TIMEDIR}/zoneinfo

fi

if [ -f /etc/ntp.drift ] ; then$CP -p /etc/ntp.drift ${TIMEDIR}/ntp.drift

fi

if [ -x $HWCLOCK ] ; then$HWCLOCK --show > ${TIMEDIR}/hwclock_--show.out

fi

if [ -x $NTPQ ] ; then$NTPQ -p > ${TIMEDIR}/ntpq_-p.out 2>&1

fi

if [ -f /etc/ntp/step-tickers ] ; then $CP -p /etc/ntp/step-tickers ${LOGDIR}/etc

fi

if [ -f /etc/ntp/ntpservers ] ; then$CP -p /etc/ntp/ntpservers ${LOGDIR}/etc

fi

############################################################################### PPP Section##############################################################################

Echo "PPP Section"

PPPDIR=${LOGDIR}/etc/ppp

if [ ! -d ${PPPDIR} ] ; then$MKDIR -p ${PPPDIR}$MKDIR -p ${PPPDIR}/peers

fi

if [ -d /etc/ppp ] ; then$CP -R -p /etc/ppp/* ${PPPDIR} 2>&1

fi

if [ -d /etc/wvdial ] ; then$CP -p /etc/ppp/options.* ${PPPDIR} > /dev/null 2>&1$CP -p -R /etc/ppp/peers/* ${PPPDIR}/peers

fi

############################################################################### Apache Section##############################################################################

Echo "Apache Section"

if [ -d /etc/httpd ] ; thenAPACHEDIR=${LOGDIR}/httpd

elseAPACHEDIR=${LOGDIR}/apache

fi

if [ ! -d $APACHEDIR ] ; then$MKDIR -p ${APACHEDIR}

fi

if [ -x $APACHECTL ] ; then$APACHECTL status > ${APACHEDIR}/apachectl_status.out 2>&1

fi

if [ -x $APACHE2CTL ] ; then$APACHE2CTL status > ${APACHEDIR}/apache2ctl_status.out 2>&1

fi

############################################################################### Samba Section##############################################################################

Echo "Samba Section"

SAMBADIR=${LOGDIR}/disks/samba

if [ ! -d ${SAMBADIR} ] ; then$MKDIR -p ${SAMBADIR}

fi

if [ -x $TESTPARM ] ; thenecho "y" | $TESTPARM > ${SAMBADIR}/testparm.out 2>&1

fi

if [ -x $WBINFO ] ; then$WBINFO -g > ${SAMBADIR}/wbinfo_-g.out 2>&1

$WBINFO -u > ${SAMBADIR}/wbinfo_-g.out 2>&1fi

############################################################################### Openssh Section##############################################################################

Echo "Openssh Section"

SSHDIR=${LOGDIR}/etc/ssh

$MKDIR -p ${SSHDIR}

if [ -f /etc/nologin ] ; then$CP -p /etc/nologin ${LOGDIR}/etc/nologin

fi

if [ -d /etc/ssh/ssh_config ] ; then$CP -p /etc/ssh/ssh_config ${SSHDIR}/ssh_config

fi

if [ -d /etc/ssh/sshd_config ] ; then$CP -p /etc/ssh/sshd_config ${SSHDIR}/sshd_config

fi

############################################################################### X11 Section##############################################################################

Echo "X11 Section"XDIR=${LOGDIR}/X

$MKDIR -p $XDIR

if [ -d /etc/X11 ] ; then$CP -R -p /etc/X11 ${LOGDIR}/etc

fi

if [ -x $SYSP ] ; then$SYSP -c > ${XDIR}/sysp_-c.out$SYSP -s mouse > ${XDIR}/sysp_-s_mouse.out$SYSP -s keyboard > ${XDIR}/sysp_-s_keyboard.out

fi

if [ -x $_3DDIAG ] ; then$_3DDIAG > ${XDIR}/3Ddiag.out

fi

############################################################################### This section is for removing any information # about hardcoded passwords inserted in files.##############################################################################

if [ -f /etc/wvdial.conf ] ; then $CAT /etc/wvdial.conf | sed -e /^Password/d > ${LOGDIR}/etc/wvdial.conf

fi

############################################################################### Tar Up Support Directory###############################################ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ