1
0
Files
irix-657m-src/irix/cmd/snmp/cmu/get_mib_objects
2022-09-29 17:59:04 +03:00

885 lines
28 KiB
Bash
Executable File

#!/bin/sh
#
# get_mib_objects
#
# Script to scan an SNMP agent for several MIBs, using various
# facilities (Get if applicable, GetNext otherwise)
#
# This script saves stats information in a file in $TMPDIR/mib.$SUBSYS.<date&time>
# It is particularly useful to detect memory leaks by querying the
# agent several times in a row.
#
# This script may also save MIB output into a data file.
#
# To add new menu entries, search for the keyword GJB throughout this
# file to let you know how to do so.
#
# Gerard Berthet, SGI, October 19, 1994
#
MAX_COUNT=1
PREFIX="-----> "
MARKER="==========================================================================================================="
START=`date`
DFLT_AGENT_HOST=`uname -n`
DFLT_COMMUNITY=public
DFLT_MAX_COUNT=1
DFLT_SLEEP=0
DFLT_ANS_NO="no"
DFLT_ANS_YES="yes"
DFLT_PRINT_STATS=0 # means no
DFLT_MACHINE=$DFLT_AGENT_HOST
SGI_WALK=snmpwalk
CMU_WALK=cmu_snmpwalk
SNMPGET=cmu_snmpget
DFLT_WALK="cmu_snmpwalk"
NULL_DATAFILE=/dev/null
DFLT_DATAFILE=$NULL_DATAFILE
DATAFILE=$DFLT_DATAFILE
DFLT_SAVE_STATS_RUNS=-1
DFLT_SAVE_STATS=$DFLT_SAVE_STATS_RUNS # means print at end of all runs
FILEXT=`date +%b%d_%Y_%H%M%S`
PWD=`pwd`
#TMPDIR=$PWD
TMPDIR="/tmp"
TMPFILE="$TMPDIR/date.$$"
date > $TMPFILE
ERR=$?
if [ x$ERR != x0 ]; then
echo Cannot save data or stats in $TMPDIR
exit
else
echo Stats and/or stats will be saved in $TMPDIR
fi
rm -f $TMPFILE
FILEPREFIX="$TMPDIR/mib"
# FILEPREFIX="TMPDIR/mib"
STATSFILE=$FILEPREFIX.stats.$FILEXT
rm -f $STATSFILE
#
# Define values for menu entries
#
SEL_TOP=0
SEL_HPUX=1
SEL_MIBII=2
SEL_HPCOMPSYS=3
SEL_HPFS=4
SEL_HPPROC=5
SEL_HPTRAP=6
SEL_HPCONF=7
SEL_HPICMP=8
SEL_HPAUTH=9
SEL_SGI=10
SEL_STATS=11
SEL_OBJS=12
SEL_CLEAN=13
SEL_MIB2_SYS=14
SEL_MIB2_IF=15
SEL_MIB2_AT=16
SEL_MIB2_IP=17
SEL_MIB2_IP_SCALARS=18
SEL_MIB2_IP_ADDRTBL=19
SEL_MIB2_IP_ROUTETBL=20
SEL_MIB2_IP_ATTBL=21
SEL_MIB2_ICMP=22
SEL_MIB2_TCP=23
SEL_MIB2_TCP_SCALARS=24
SEL_MIB2_TCP_CONNTBL=25
SEL_MIB2_UDP=26
SEL_MIB2_UDP_SCALARS=27
SEL_MIB2_UDP_LISTTBL=28
SEL_LAST=$SEL_MIB2_UDP_LISTTBL
#
# GJB -- Add the new menu entry above the SEL_LAST line,
# by assigning the next integer value.
# Make sure you also set the line with SEL_LAST to the
# last entry you defined.
#
MIN_SEL=1
MAX_SEL=$SEL_LAST
DFLT_SEL=$SEL_HPUX
# ######### #
# MAIN LOOP #
# ######### #
while [ 1 -eq 1 ]
do
trap "continue" 2 3
# ---------------------------------------------------------------
# Prompt for MIB group
# ---------------------------------------------------------------
cat << FOO
Select which MIB group you want to walk:
$SEL_TOP. Exit $SEL_MIB2_SYS. MIB-II system
$SEL_HPUX. all HP-UX MIB $SEL_MIB2_IF. MIB-II interfaces
$SEL_MIBII. all MIB-II $SEL_MIB2_AT. MIB-II at group
$SEL_HPCOMPSYS. HP computerSystem $SEL_MIB2_IP. MIB-II ip group
$SEL_HPFS. HP fileSystem $SEL_MIB2_IP_SCALARS. MIB-II ip scalars
$SEL_HPPROC. HP processes $SEL_MIB2_IP_ADDRTBL. MIB-II ip address table
$SEL_HPTRAP. HP trapDestinations $SEL_MIB2_IP_ROUTETBL. MIB-II ip routing table
$SEL_HPCONF. HP snmpdConf $SEL_MIB2_IP_ATTBL. MIB-II ip address translation table
$SEL_HPICMP. HP icmpEchoReq $SEL_MIB2_ICMP. MIB-II icmp group
$SEL_HPAUTH. HP authFail $SEL_MIB2_TCP. MIB-II tcp group
$SEL_SGI. SGI Private MIB $SEL_MIB2_TCP_SCALARS. MIB-II tcp scalars
$SEL_STATS. View Statistics File $SEL_MIB2_TCP_CONNTBL. MIB-II tcp connection table
$SEL_OBJS. View Collected Objects $SEL_MIB2_UDP. MIB-II udp group
$SEL_CLEAN. Remove stats & data files $SEL_MIB2_UDP_SCALARS. MIB-II udp scalars
$SEL_MIB2_UDP_LISTTBL. MIB-II udp listener table
FOO
#
# GJB -- Add new menu entries above
#
DFLT_VAL=$DFLT_SEL
echo -n "Enter selection [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -eq 0 ]; then
exit
fi
if [ $ANS -lt $MIN_SEL -o $ANS -gt $MAX_SEL ]; then
echo "Invalid entry. Assuming default MIB group: " $DFLT_VAL
SEL=$DFLT_VAL
else
SEL=$ANS
fi
else
SEL=$DFLT_VAL
fi
DFLT_SEL=$SEL
# ---------------------------------------------------------------
# If cleanup, just do it now.
# ---------------------------------------------------------------
if [ $SEL -eq $SEL_CLEAN ]; then
CMD="rm -f $FILEPREFIX*"
echo "Removing all temporary files... ("$CMD")"
$CMD
continue;
fi
# ---------------------------------------------------------------
# Verify if just want to view stats or collected objects
# ---------------------------------------------------------------
if [ $SEL -eq $SEL_STATS ]; then
vi $STATSFILE
continue;
fi
if [ $SEL -eq $SEL_OBJS ]; then
vi $DATAFILE
continue;
fi
# ---------------------------------------------------------------
# Prompt to not prompt again if second time
# ---------------------------------------------------------------
DFLT_VAL=$DFLT_ANS_NO
echo " "
echo -n "Do you want the same defaults [$DFLT_VAL] ? "
read ANS
if [ -z "$ANS" -o x$ANS = xn -o x$ANS = xN ]; then
RUN_WITH_DFLTS=0
else
RUN_WITH_DFLTS=1
fi
# ---------------------------------------------------------------
# Prompt for node name to poll
# ---------------------------------------------------------------
DFLT_VAL=$DFLT_AGENT_HOST
if [ $RUN_WITH_DFLTS -eq 1 ]; then
HOST=$DFLT_AGENT_HOST
else
echo " "
echo -n "Which node do you wish to query [$DFLT_VAL] ? "
read ANS
if [ -n "$ANS" ]; then
HOST=$ANS
else
HOST=$DFLT_VAL
fi
echo "Polling node: " $HOST
fi
DFLT_AGENT_HOST=$HOST
# ---------------------------------------------------------------
# Prompt for community string
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
COMM=$DFLT_COMMUNITY
else
DFLT_VAL=$DFLT_COMMUNITY
echo " "
echo -n "Which community string to use [$DFLT_VAL] ? "
read ANS
if [ -n "$ANS" ]; then
COMM=$ANS
else
COMM=$DFLT_COMMUNITY
fi
echo "Using community: " $COMM
fi
DFLT_COMMUNITY=$COMM
# ---------------------------------------------------------------
# Prompt for number of times to run
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
MAX_COUNT=$DFLT_MAX_COUNT
else
DFLT_VAL=$DFLT_MAX_COUNT
echo " "
echo -n "How many times do you want to run it? [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -lt 1 ]; then
echo "Invalid entry. Assuming default value: " $DFLT_VAL
MAX_COUNT=$DFLT_VAL
else
MAX_COUNT=$ANS
fi
else
MAX_COUNT=$DFLT_MAX_COUNT
fi
fi
DFLT_MAX_COUNT=$MAX_COUNT
COUNT=0
# ---------------------------------------------------------------
# Prompt for number of seconds between runs
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
SLEEP=$DFLT_SLEEP
else
if [ $MAX_COUNT -gt 1 ]; then
DFLT_VAL=$DFLT_SLEEP
echo -n "How many seconds do you want hold between runs? [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -lt 0 ]; then
echo "Invalid entry. Assuming default value: " $DFLT_VAL
SLEEP=$DFLT_VAL
else
SLEEP=$ANS
fi
else
SLEEP=$DFLT_VAL
fi
else
SLEEP=$DFLT_SLEEP
fi
fi
DFLT_SLEEP=$SLEEP
# ---------------------------------------------------------------
# Prompt for printing stats
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
PRINT_STATS=$DFLT_PRINT_STATS
else
if [ $DFLT_PRINT_STATS -eq 1 ]; then
DFLT_VAL="yes"
else
DFLT_VAL="no"
fi
echo -n "Do you want to print agent stats? [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ x"$ANS" = "xyes" -o x"$ANS" = "xy" -o x"$ANS" = "xY" -o x"$ANS" = "xYES" ]
then
PRINT_STATS=1
else
if [ x"$ANS" = "xno" -o x"$ANS" = "xn" -o x"$ANS" = "xN" -o x"$ANS" = "xNO" ]
then
PRINT_STATS=0
fi
fi
else
PRINT_STATS=$DFLT_PRINT_STATS
fi
fi
DFLT_PRINT_STATS=$PRINT_STATS
if [ $PRINT_STATS -eq 0 ]; then
echo "Stats will NOT be printed"
else
echo "Stats will be printed"
fi
# ---------------------------------------------------------------
# Prompt for number of runs between printing stats
# ---------------------------------------------------------------
if [ $PRINT_STATS -eq 1 ]; then
if [ $RUN_WITH_DFLTS -eq 1 ]; then
SAVE_STATS=$DFLT_SAVE_STATS
else
if [ $MAX_COUNT -gt 1 ]; then
if [ $DFLT_SAVE_STATS -eq $DFLT_SAVE_STATS_RUNS ]; then
DFLT_VAL="END_ONLY"
else
DFLT_VAL=$DFLT_SAVE_STATS
fi
echo -n "Every how many runs do you want to print agent stats? [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -lt 1 ]; then
echo "Invalid entry. Assuming default value: " $DFLT_VAL
SAVE_STATS=$DFLT_SAVE_STATS_RUNS
else
SAVE_STATS=$ANS
fi
else
SAVE_STATS=$DFLT_SAVE_STATS_RUNS
fi
else
SAVE_STATS=$DFLT_SAVE_STATS_RUNS
fi
fi
else
SAVE_STATS=$DFLT_SAVE_STATS_RUNS
fi
DFLT_SAVE_STATS=$SAVE_STATS
# ---------------------------------------------------------------
# Place a marker in the STATSFILE
# ---------------------------------------------------------------
if [ $PRINT_STATS -eq 1 ]; then
echo $MARKER >> $STATSFILE
echo $PREFIX "Started at " $START >> $STATSFILE
fi
# ---------------------------------------------------------------
# Do some pre-processing of the information
# ---------------------------------------------------------------
GET_OPT=0
case "$SEL"
in
$SEL_HPUX) SUBSYS=hpux
SYSTEM="HP-UX MIB"
GET_OPT=0;;
$SEL_MIBII) SUBSYS=mib2
SYSTEM="MIB-II"
GET_OPT=0;;
$SEL_HPCOMPSYS) SUBSYS=hpcompsys
SYSTEM=computerSystem
GET_OPT=1;;
$SEL_HPFS) SUBSYS=hpfs
SYSTEM=fileSystem
GET_OPT=0;;
$SEL_HPPROC) SUBSYS=hpprocs
SYSTEM=processes
GET_OPT=0;;
$SEL_HPTRAP) SUBSYS=hptrapdest
SYSTEM=trap
GET_OPT=0;;
$SEL_HPCONF) SUBSYS=hpconf
SYSTEM=snmpdConf
GET_OPT=1;;
$SEL_HPICMP) SUBSYS=hpicmp
SYSTEM=icmpEchoRequest
GET_OPT=2;;
$SEL_HPAUTH) SUBSYS=hpauth
SYSTEM=snmpAuthFail
GET_OPT=0;;
$SEL_SGI) SUBSYS=sgi
SYSTEM=sgiMib
GET_OPT=0;;
$SEL_MIB2_SYS) SUBSYS=mib2sys
SYSTEM=mib2System
GET_OPT=1;;
$SEL_MIB2_IF) SUBSYS=mib2if
SYSTEM=mib2Interfaces
GET_OPT=0;;
$SEL_MIB2_AT) SUBSYS=mib2at
SYSTEM=mib2AddrTransl
GET_OPT=0;;
$SEL_MIB2_IP) SUBSYS=mib2ip
SYSTEM=mib2IP
GET_OPT=0;;
$SEL_MIB2_IP_SCALARS) SUBSYS=mib2ips
SYSTEM=mib2IPScalars
GET_OPT=1;;
$SEL_MIB2_IP_ADDRTBL) SUBSYS=mib2ipatbl
SYSTEM=mib2IPAddrTbl
GET_OPT=0;;
$SEL_MIB2_IP_ROUTETBL) SUBSYS=mib2iprtbl
SYSTEM=mib2IPRteTbl
GET_OPT=0;;
$SEL_MIB2_IP_ATTBL) SUBSYS=mib2ipattbl
SYSTEM=mib2IPATTbl
GET_OPT=0;;
$SEL_MIB2_ICMP) SUBSYS=mib2icmp
SYSTEM=mib2ICMP
GET_OPT=0;;
$SEL_MIB2_TCP) SUBSYS=mib2tcp
SYSTEM=mib2TCP
GET_OPT=0;;
$SEL_MIB2_TCP_SCALARS) SUBSYS=mib2tcps
SYSTEM=mib2TCPScalars
GET_OPT=1;;
$SEL_MIB2_TCP_CONNTBL) SUBSYS=mib2tcpctbl
SYSTEM=mib2TCPConnTbl
GET_OPT=0;;
$SEL_MIB2_UDP) SUBSYS=mib2udp
SYSTEM=mib2UDP
GET_OPT=0;;
$SEL_MIB2_UDP_SCALARS) SUBSYS=mib2udps
SYSTEM=mib2UDPScalars
GET_OPT=1;;
$SEL_MIB2_UDP_LISTTBL) SUBSYS=mib2udpltbl
SYSTEM=mib2UDPListTbl
GET_OPT=0;;
esac
#
# GJB -- Add corresponding "elif" entry above to define
# the two strings associated with the MIB group(s):
# SUBSYS: a string used to create the filenames where data may be
# collected.
# SYSTEM: a string used when saving stats in the stats file.
#
# GET_OPT = 0 means that the MIB group is a table and only GetNext applies
# GET_OPT = 1 means that this MIB group can be queried with Get as well
# GET_OPT = 2 means that user needs to select a node that applies to i
# this MIB group. This option applies only to the icmpEchoRequest
# MIB group.
#
echo You selected $SYSTEM
MAX_OPT=2
# ---------------------------------------------------------------
# If ICMP ECHO REQUEST in HP-UX MIB, prompt for node to ping
# ---------------------------------------------------------------
if [ $GET_OPT -eq 2 ]; then
if [ $RUN_WITH_DFLTS -eq 1 ]; then
MACHINE=$DFLT_MACHINE
else
cat << FOO
Which machine do you want to ping:
1. machine
2. this
3. blacktron
4. froggie (down)
5. wombat
FOO
MAX_MACHINE=5
DFLT_VAL=machine
echo -n "Enter selection [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -lt 1 -o $ANS -gt $MAX_MACHINE ]; then
echo "Invalid entry. Assuming default value: " $DFLT_VAL
MACHINE=machine
elif [ $ANS -eq 2 ]; then
MACHINE=this
elif [ $ANS -eq 3 ]; then
MACHINE=blacktron
elif [ $ANS -eq 4 ]; then
MACHINE=froggie
elif [ $ANS -eq 5 ]; then
MACHINE=wombat
else
MACHINE=machine
fi
else
MACHINE=machine
fi
WALK=$SNMPGET
# Beware if there are more than one entry per host in NIS
# Note the hack to eliminate slotmachine when lloking for machine
IP_MACHINE=`ypcat hosts | grep $MACHINE |grep -v slotmachine | cut -f1 | head -1`
echo You selected $MACHINE $IP_MACHINE
fi
DFLT_MACHINE=$MACHINE
else
# ---------------------------------------------------------------
# Otherwise, prompt for which WALK utility to use
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
WALK=$DFLT_WALK
else
cat << FOO
Select which utility you wish to use:
1. CMU snmpwalk (timeout + names + stop at end of group)
2. SGI snmpwalk (No timeout + no names + go over end of group)
FOO
if [ $GET_OPT -eq 1 -a $COUNT -eq 0 ]; then
MAX_OPT=3
cat << FOO
3. Get individual elements (SNMP Gets)
FOO
#
# GJB -- If you create other GET_OPT values, you will need to define
# their behavior here.
#
fi
DFLT_VAL=1
echo " "
echo -n "Enter selection [$DFLT_VAL]: "
read ANS
if [ -n "$ANS" ]; then
if [ $ANS -lt 1 -o $ANS -gt $MAX_OPT ]; then
echo "Invalid entry. Assuming default value: " $DFLT_VAL
ANS=$DFLT_VAL
fi
else
ANS=$DFLT_VAL
fi
if [ $ANS = 2 ]; then
WALK=$SGI_WALK
elif [ $ANS = 3 ]; then
WALK=$SNMPGET
else
WALK=$CMU_WALK
fi
fi
DFLT_WALK=$WALK
fi
# ---------------------------------------------------------------
# Prompt whether to log data or not to a file
# ---------------------------------------------------------------
if [ $RUN_WITH_DFLTS -eq 1 ]; then
DATAFILE=$DFLT_DATAFILE
else
if [ x"$DATAFILE" = x"$NULL_DATAFILE" ]; then
DFLT_VAL=n
else
DFLT_VAL=y
fi
DATAFILE=$FILEPREFIX.$SUBSYS.$FILEXT
echo " "
echo -n "Do you wish to log the data to $DATAFILE [$DFLT_VAL]? "
read ANS
if [ -n "$ANS" ]; then
if [ x$ANS = xn -o x$ANS = xN -o x$ANS = xno -o x$ANS = xNO ]; then
DATAFILE=$NULL_DATAFILE
echo Data will NOT be saved
else
DATAFILE=$DATAFILE
echo Data will be saved to $DATAFILE
fi
else
if [ "$DFLT_VAL" = "y" ]; then
DATAFILE=$DATAFILE
echo Data will be saved to $DATAFILE
else
DATAFILE=$NULL_DATAFILE
echo Data will NOT be saved
fi
fi
fi
rm -f $DATAFILE
DFLT_DATAFILE=$DATAFILE
# ---------------------------------------------------------------
# Perform actual work here
# ---------------------------------------------------------------
if [ $PRINT_STATS -eq 1 ]; then
ps -elf | grep snmpd | grep -v grep >> $STATSFILE
fi
while [ 1 -eq 1 ]
do
trap "break" 2 3
if [ $SEL = $SEL_TOP ]; then
break
elif [ $SEL = $SEL_HPUX ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIBII ]; then
$WALK $HOST $COMM .1.3.6.1.2.1 | tee -a $DATAFILE
elif [ "$SEL" = $SEL_HPCOMPSYS ]; then
if [ $WALK = $SNMPGET ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.4.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.5.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.6.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.7.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.8.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.9.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.10.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.11.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.12.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.13.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.14.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1.15.0 | tee -a $DATAFILE
else
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.1 | tee -a $DATAFILE
fi
elif [ $SEL = $SEL_HPFS ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.2 | tee -a $DATAFILE
elif [ $SEL = $SEL_HPPROC ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.3.1.4 | tee -a $DATAFILE
elif [ $SEL = $SEL_HPTRAP ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.1 | tee -a $DATAFILE
elif [ $SEL = $SEL_HPCONF ]; then
if [ $WALK = $SNMPGET ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.4.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.5.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.6.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.7.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.8.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2.9.0 | tee -a $DATAFILE
else
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.2 | tee -a $DATAFILE
fi
elif [ $SEL = $SEL_HPICMP ]; then
# There is no concept of snmpwalk here
# Packet size is hard coded: 56 bytes
# Timeout is hard coded: 2 seconds
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.7.1.56.2.${IP_MACHINE}.0 | tee -a $DATAFILE
elif [ $SEL = $SEL_HPAUTH ]; then
$WALK $HOST $COMM .1.3.6.1.4.1.11.2.13.4 | tee -a $DATAFILE
elif [ $SEL = $SEL_SGI ]; then
WALK=$SGI_WALK
$WALK $HOST $COMM .1.3.6.1.4.1.59 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_SYS ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.1 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IF ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.2 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_AT ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.3 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IP ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.4 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IP_SCALARS ]; then
WALK=$SNMPGET # Override
$WALK $HOST $COMM .1.3.6.1.2.1.4.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.4.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.5.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.6.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.7.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.8.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.9.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.10.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.11.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.12.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.13.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.14.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.15.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.16.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.17.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.18.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.19.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.4.23.0 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IP_ADDRTBL ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.4.20 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IP_ROUTETBL ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.4.21 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_IP_ATTBL ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.4.22 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_ICMP ]; then
if [ $WALK = $SNMPGET ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.5.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.4.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.5.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.6.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.7.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.8.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.9.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.10.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.11.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.12.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.13.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.14.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.15.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.16.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.17.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.18.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.19.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.20.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.21.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.22.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.23.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.24.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.25.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.5.26.0 | tee -a $DATAFILE
else
$WALK $HOST $COMM .1.3.6.1.2.1.5 | tee -a $DATAFILE
fi
elif [ $SEL = $SEL_MIB2_TCP ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.6 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_TCP_SCALARS ]; then
WALK=$SNMPGET # Override
$WALK $HOST $COMM .1.3.6.1.2.1.6.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.4.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.5.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.6.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.7.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.8.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.9.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.10.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.11.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.12.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.14.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.6.15.0 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_TCP_CONNTBL ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.6.13 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_UDP ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.7 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_UDP_SCALARS ]; then
WALK=$SNMPGET # Override
$WALK $HOST $COMM .1.3.6.1.2.1.7.1.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.7.2.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.7.3.0 | tee -a $DATAFILE
$WALK $HOST $COMM .1.3.6.1.2.1.7.4.0 | tee -a $DATAFILE
elif [ $SEL = $SEL_MIB2_UDP_LISTTBL ]; then
$WALK $HOST $COMM .1.3.6.1.2.1.7.5 | tee -a $DATAFILE
#
# GJB -- Add a new "elif" statement above applying to the new MIB group
#
fi
# ---------------------------------------------------------------
# Print statistics on screen and in file if applicable
# ---------------------------------------------------------------
COUNT=`expr $COUNT + 1`
if [ $MAX_COUNT -gt 1 ]; then
echo "-----------------------------------------------"
echo $PREFIX COUNT=$COUNT
echo "-----------------------------------------------"
fi
if [ $SAVE_STATS -gt 0 ]; then
INT_COUNT=`expr $COUNT / $SAVE_STATS`
MODULO=`expr $COUNT - $INT_COUNT \* $SAVE_STATS`
else
MODULO=1
fi
if [ $MODULO -eq 0 -o $COUNT -ge $MAX_COUNT ]; then
echo " "
if [ $PRINT_STATS -eq 1 ]; then
ps -elf | grep snmpd | grep -v grep >> $STATSFILE
echo $PREFIX Ran $WALK on $SYSTEM test $COUNT times >> $STATSFILE
echo $PREFIX "Ended at " `date` >> $STATSFILE
echo $PREFIX Data saved in file: $DATAFILE >> $STATSFILE
fi
echo " " >> $STATSFILE
if [ $PRINT_STATS -eq 1 ]; then
cat $STATSFILE
fi
echo $MARKER
fi
if [ $COUNT -ge $MAX_COUNT ]; then
echo $MARKER >> $TMP_FILE
break
fi
sleep $SLEEP
done
done
# ---------------------------------------------------------------
# Cleanup at the end of the work
# ---------------------------------------------------------------
DFLT_VAL=n
echo "Do you want to remove the datafile? [$DFLT_VAL] "
read ANS
if [ x$ANS = xy -o x$ANS = xY ]; then
rm -f $DATAFILE
Echo Removed $DATAFILE
fi
exit 0