Upload
mardani-agung
View
60
Download
0
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###############################################ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ