Linux_관리_점검스크립트

|

좀 된거라, 어디서 참조를 했는지 기억이 가물가물함.

아래는 스크립트 전문이므로 사용법은 별도로 설명하지 않겠음

스크립트 사용법을 모르는 분들은 사용자제 부탁(이 스크립트로 인한 오류를 스스로 수정볼 수 있는 분들만 사용바람)

 

필자 주) 파일의 변경을 요구하는 스크립트가 아닌, 시스템정보만 출력하는 스크립트로 대체로 무해함.

일종의 Solaris Explorer 같은 것임.

 

#!/bin/bash

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

# Copyright (c) J.S Unix Consultants Ltd

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

#

#

# FILE : linux-explorer.sh

# Last Change Date : 14-12-2008

# Author(s) : Joe Santoro

# Date Started : 15th April, 2004

# Email : linuxexplo [ at ] unix-consultants.com

# Web : http://www.unix-consultants.co.uk/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 as much 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.102"

MYDATE="$(/bin/date +'%Y%m%d')"    # 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

TMPFILE="/tmp/$(basename $0).$$"    # Tempory File

TOPDIR="/sase/pm"        # Top level output directory

 

 

VERBOSE=0                # Set to see the scripts progress used

                     # only if connected to a terminal session.

 

FULLSOFT=0                # Set to Verify Software installation

                     # this takes a very long time

 

 

#

# Ensure that we are the root user

#

if [ "$WHOAMI" != "root" ] ; then

/bin/echo    

    /bin/echo "ERROR: Sorry only the root user can run this script"

    /bin/echo    

    exit 1

fi

 

 

#

# Set the path for the script to run.

#

PATH=/bin:/usr/sbin:/sbin:/usr/sbin:/usr/local/bin:$PATH

export PATH

 

if [ -d /opt/VRTSvcs/bin ] ; then

        PATH=$PATH:/opt/VRTSvcs/bin

        export PATH

fi

 

# Remove any temporary files we create

trap '$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 ] ; then

            /bin/echo "$*"

            echo "============================================="

        fi

 

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

            echo "Press Return to Continue.........."

            read A

        fi

    fi

}

 

 

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

#

# 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" = "" ] ; then

        echo "Command $command not found" >> $NOTFNDLOG

        echo "NOT_FOUND"

    elif [ ! -x "$mypath" ] ; then

        echo "Command $command not executable" >> $NOTFNDLOG

        echo "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 )

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 )

DPKG=$(mywhich dpkg )

EMERGE=$(mywhich emerge )

YUM=$(mywhich yum )

 

 

# Kernel Info

SYSCTL=$(mywhich sysctl )

KSYMS=$(mywhich ksyms )

 

    # H/W Info

ACPI=$(mywhich acpi )

CARDCTL=$(mywhich cardclt )

DUMPE2FS=$(mywhich dumpe2fs )

DMIDECODE=$(mywhich dmidecode )

FDISK=$(mywhich fdisk     )    

HDPARM=$(mywhich hdparm )

HOSTNAME=$(mywhich hostname )

HWINFO=$(mywhich hwinfo )

HWCLOCK=$(mywhich hwclock )

LVDISPLAY=$(mywhich lvdisplay )

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 )

SMARTCTL=$(mywhich smartclt )

PROCINFO=$(mywhich procinfo )

SFDISK=$(mywhich sfdisk )

HWPARM=$(mywhich hwparm )

SCSI_ID=$(mywhich scsi_id )    

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 )

VGSCAN=$(mywhich vgscan )

VGDISPLAY=$(mywhich vgdisplay )

VGDISKSCAN=$(mywhich vgdiskscan )

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 )

 

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

do

case "$OPT" in

 

 

d)    if [ $OPTARG = "/" ] ; then

            echo "ERROR: root directory selected as target! "

            echo "Exiting."

            exit 1

        elif [ $OPTARG != "" ] ; then

            TOPDIR=${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 ] ; then

        tput clear

    fi

fi

 

 

LOGTOP="$TOPDIR"

LOGDIR="${LOGTOP}/${MYHOSTNAME}-${MYDATE}"

TARFILE="${LOGTOP}/${MYHOSTNAME}-${MYDATE}.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 script

findCmds

 

 

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}

 

fi

fi

 

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

 

# make sure this is a linux system

 

if [ "$($UNAME -s)" != "Linux" ] ; then

    $ECHO "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 ] ; then

        $ECHO "ERROR: Creating directory $LOGDIR"

        exit 1

    else

        $CHMOD 750 $LOGDIR

    fi

fi

 

 

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

 

for Dir in etc system disks lp san var logs hardware boot

do

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

 

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

 

        if [ $? -ne 0 ] ; then

            $ECHO "ERROR: Creating directory $LOGDIR"

            exit 1

        else

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

        fi

    fi

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/issue

fi

 

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 line

    do

    Bus=$($ECHO $line 2>/dev/null | awk '{ print $1 }')

    $LSPCI -vv -s $Bus > ${LOGDIR}/hardware/lspci_-vv_-s_${Bus}.out 2>&1

    done

fi

 

 

 

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.out

fi

 

 

# Tape information

if [ -f /etc/stinit.def ] ; then

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

fi

 

 

# Global Devices list

if [ -x "$LSHAL" ] ; then

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

fi

 

if [ -x /usr/share/rhn/up2date_client/hardware.py ] ; then

    /usr/share/rhn/up2date_client/hardware.py > ${LOGDIR}/hardware/hardware.py.out 2>&1

fi

 

 

 

 

if [ -x "$SMARTCTL" ] ; then

    for 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/smartctl-a_${name}.out

    done

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>&1

fi

 

 

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

do

    if [ -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" )

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

 

 

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

# 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

$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.out

ulimit -a            > ${LOGDIR}/system/ulimit-a.out

 

 

 

 

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

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

do

    kernmod=$( $ECHO $line | $AWK '{ print $1 }' )

    $MODINFO $kernmod > ${LOGDIR}/kernel/info/${kernmod}.out 2>&1

done

 

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

$KSYMS             > ${LOGDIR}/kernel/ksyms.out 2>&1

 

$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.conf

fi

 

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

# Get the kernel configuration details from a 2.6 kernel

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

 

if [ -f /proc/config.gz ] ; then

    gunzip -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/hotplug

    fi

 

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

 

$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

 

for DISK in $DISKLIST

do

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

 

    if [ -x $HDPARM ]; then

        $HDPARM -vIi $DISK         > ${LOGDIR}/disks/hdparm_-vIi_${NEWDISK} 2>&1

    fi

 

    if [ -x $SFDISK ] ; then

        $SFDISK -l $DISK        > ${LOGDIR}/disks/sfdisk_-l_-${NEWDISK}.out 2>&1

    fi

 

    if [ -x $FDISK ] ; then

        $FDISK -l $DISK        > ${LOGDIR}/disks/fdisk_-l_-${NEWDISK}.out 2>&1

    fi

    

done

 

if [ -x "$DUMPE2FS" ] ; then

 

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

 

    for parts in $PARTS

    do

    name=$(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=$(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>&1

fi

 

 

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

# 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

 

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

# 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>&1

fi

 

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_list.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>&1

    fi

 

 

    if [ -x $VXDG ] ; then

        $VXDG -q list             > ${LOGDIR}/disks/vxvm/vxdg_-q_-list.out 2>&1

    fi

 

 

 

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

# 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}.out 2>&1

 

    done

 

fi

 

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

# Get the filesystems Characteristics

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

 

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

do

    if [ -x $TUNE2FS ] ; then

        name=$(echo $i | sed 's/\//_/g')

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

    fi

 

done

 

 

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

# NFS Information

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

 

# Copy NFS config files around

if [ -f /etc/auto.master ] ; then

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

fi

 

# lets see what we have really exported

if [ -x $EXPORTFS ] ; then

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

fi

 

# This is what we have configured to be exported

if [ -f /etc/exports ] ; then

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

fi

 

 

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" ] ; then

    for i in $( $LS /dev/md[0-9]* 2>/dev/null )

    do

        name=$($ECHO $i | sed 's/\//_/g')

         $LSRAID -a $i > ${LOGDIR}/disks/raid/lsraid_-a_${name}.out > /dev/null 2>&1

    done

fi

 

 

 

if [ -x "$MDADM" ] ; then

    for 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_${name}.out > /dev/null 2>&1

 

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

$RM -f ${LOGDIR}/disks/raid/mdadm--detail_${name}.out

fi

    done

fi

 

 

 

 

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

# LVM Information

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

 

 

LVMDIR=${LOGDIR}/disks/lvm

 

$MKDIR -p ${LVMDIR}

 

if [ -x "$LVDISPLAY" ] ; then

    $LVDISPLAY -v     > ${LVMDIR}/lvdisplay_-v.out 2>&1

    $VGDISPLAY -vv     > ${LVMDIR}/vgdisplay_-vv.out 2>&1

    $VGSCAN -v     > ${LVMDIR}/vgscan_-v.out 2>&1

    $VGDISKSCAN -v > ${LVMDIR}/vgdiskscan_-v.out 2>&1

    $PVSCAN -v > ${LVMDIR}/pvscan_-v.out 2>&1

    $PVDISPLAY -v > ${LVMDIR}/pvdisplay_-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

 

 

 

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

# 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 ] ; then

            $ECHO "ERROR: ${line} problem"

        fi

    done

 

 

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

    # 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

    fi

fi

 

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 them

YUMDIR=${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

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.out

        $DPKG --get-selections        > ${LOGDIR}/software/dpkg_-get-selections.out

    fi

    

 

    if [ -x /usr/bin/apt-config ] ; then

        /usr/bin/apt-config dump     > ${LOGDIR}/software/apt-config_dump.out

    fi

 

fi

 

 

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

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

# Provided by Adam Bills

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

 

GENTOPKGS=${LOGDIR}/software/gento_kgs.out

if [ -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

 

    ) >> $GENTOPKGS

fi

 

 

# Show the bootup info

if [ -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/sysconfig

fi

 

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

# 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

fi

fi

 

# 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

 

 

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

# 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

else

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

fi

 

 

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

# Xen Information

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

 

 

if [ -d /etc/xen ] ; then

 

    Echo "Xen Section"

 

    VIRT=${LOGDIR}/virtuals

    $MKDIR -p ${VIRT}

 

 

    XENETC=${LOGDIR}/xen

 

    if [ ! -d $XENETC ] ; then

        mkdir -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-list_${myHost}.out 2>&1

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

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

        done

 

    fi

fi

 

 

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

#    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/interfaces

    fi

 

    $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-nvL.out

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

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

 

else

    $ECHO "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

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

 

 

ETHTOOL="X"

 

 

if [ -x "$ETHTOOL" ] ; then

 

    for version in 4 6

    do

        dir=/proc/sys/net/ipv${version}/conf

 

        if [ ! -d ${dir} ] ; then

            continue

        fi

 

        cd $dir

 

        INTERFACES=$( cat /proc/net/dev | grep ":" | awk '{print $1 }' | sed 's/://g')

 

        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}.out 2>&1

        done

 

    done

 

fi

 

 

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

# xinetd Section

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

 

Echo "xinetd Section"

 

if [ -d /etc/xinet.d ] ; then

    XINETD=${LOGDIR}/etc/xinet.d

 

    $MKDIR -p ${XINETD}

 

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

    do

        filename=$(basename $i)

        $CP -p $i ${XINETD}/$filename

    done

fi

 

 

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>&1

fi

 

 

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

# Cluster Section

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

 

 

CLUSTERDIR=${LOGDIR}/clusters

 

Echo "Cluster Section"

 

# Oracles OCFS2 cluster filesystems

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

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

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

fi

 

# Redhat Cluster

if [ -x $CLUSTAT ] ; then

 

    Echo "Veritas Cluster Section"

 

    MyClusterDir=$CLUSTERDIR/redhat

    mkdir -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

 

 

if [ -f /etc/cluster.xml ] ; then

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

fi

 

 

 

# Veritas Cluster

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

 

Echo "Veritas Cluster Section"

 

VCSDIR=${LOGDIR}/clusters/veritas

$MKDIR -p ${VCSDIR}

 

 

$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

 

 

 

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

# 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.cw

fi

 

 

if [ -d /etc/mail ] ; then

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

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

    done

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 ] ; then

    POSTDIR=${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 ] ; then

    APACHEDIR=${LOGDIR}/httpd

else

    APACHEDIR=${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 ] ; then

    $ECHO "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>&1

fi

 

 

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

# 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

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

 

cd $LOGDIR

 

$TAR czf ${TARFILE} . > /dev/null 2>&1

 

if [ -t 0 ] ; then

 

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

        ## tput clear

 

        $CAT <<- EOF

    

        The Tar file

      

            ${TARFILE}

    

        has been created for support purposes

    

        You can email/sftp the tar file to those providing you

        with technical support

    

        EOF

    fi

fi

 

 

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

#         That's ALL Folks !!!

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

'OS > Linux' 카테고리의 다른 글

리눅스 hostid 변경  (0) 2012.09.13
Linux_관리_점검스크립트  (0) 2011.05.09
Linux_RPM을 이용한 패키지 설치  (0) 2011.05.09
Linux_JDK(Java) 설치  (0) 2011.05.09
Linux_시간(date)설정 및 시간동기화  (0) 2011.05.09
Linux_파일시스템_samba 구성  (0) 2011.05.06
Trackback 3 And Comment 0