Differences

This shows you the differences between two versions of the page.

Link to this comparison view

monitors:cpu2 [2009/11/23 05:42] (current)
Line 1: Line 1:
 +====== My Monitor (CHANGEME) ======
 +
 +^ Author | [[ butchdeal@yahoo.com | Butch Deal ]] |
 +^ Compatibility | Xymon 4.2 |
 +^ Requirements | unix, dmidecode for linux |
 +^ Download | None |
 +^ Last Update | 2009-06-02 |
 +
 +===== Description =====
 +Monitors lots of extra CPU and system related bits. Works on Linux (RH & SuSe), Solaris, and now MacOS X (Darwin). Removed the need to install prtdiag on Linux, and added more complete relese version info.
 +Added some support for Solaris 10 zones and for dual core Ultra sparc IV.
 +===== Installation =====
 +=== Client side ===
 +add these lines to hobbitclient.cfg:​
 +<​code>​
 +UNAME="/​bin/​uname"​
 +SWAP="/​usr/​sbin/​swap" ​
 +PSRINFO="/​usr/​sbin/​psrinfo"​
 +MPSTAT="/​usr/​bin/​mpstat"​
 +</​code>​
 +
 +Modify your clientlaunch.cfg,​ adding:
 +<​code>​
 +[cpu2]
 + ENVFILE $HOBBITCLIENTHOME/​etc/​hobbitclient.cfg
 + CMD $HOBBITCLIENTHOME/​ext/​cpu2.sh
 + LOGFILE $HOBBITCLIENTHOME/​logs/​cpu2.log
 + INTERVAL 5m
 +</​code>​
 +edit cpu2.sh for proper path to sudo and dmidecode. ​ Set up sudo so that dmidecode can be run without password. ​ (script tried both /​usr/​local/​bin/​sudo and /​usr/​bin/​sudo).
 +=== Server side ===
 +
 +===== Source =====
 +==== cpu2.sh ====
 +<hidden onHidden="​Show Code ⇲" onVisible="​Hide Code ⇱">​
 +<​code>​
 +#!/bin/sh
 +#
 +# bb-cpu2.sh: Sun Enterprise Server check - BB external script test
 +#             ^ and now Linux
 +#
 +#####  Purpose is to report back to a central server, all "​standard"​
 +#####    detailed information about network, disk, volume, cpu, memory
 +#####    which is not reported thru regular "​easy"​ checks.
 +#####
 +#
 +# version 1.0
 +# version 2.0 - includes uname and prtdiag checks too
 +# version 2.1 - properly uses $CAT instead of cat
 +# version 2.2 - properly uses $MACHINE instead of `uname -n` in bb-hosts check
 +# version 2.4 - properly uses $THIS_HOST instead of $MACHINE due to fqdn using
 +#                 comma in name - thanks Craig Cook
 +# version 3.0 - updates to work properly with BB 1.6
 +#               ​properly uses `uname -i` for platform check on E10K
 +# version 3.1 - changed /tmp to $BBTMP
 +#                       cpu2 to $TEST
 +#                       ​$THIS_HOST to $MACHINE
 +#               ​removed code that checked for the existence of "​cpu2"​
 +#                 after the server name in bb-hosts
 +#               moved comment explaining purpose of script to start of code
 +#               ​removed <​BLOCKQUOTE>​ statements
 +# version 3.2 - made swap check optional
 +#               ​Applied Todd Jimenez style get_header and get_footer functions
 +#               added check for bbsys.local vars being set
 +#               ​changed wc to $WC
 +#               ​restored functionality to check for the existence of "​cpu2"​
 +#                 after the server name in bb-hosts, but now optional
 +#               ​changed &red and &yellow to variables
 +# version 3.3 - Added changes suggested by Andrew Clarke
 +#               - skip tests that involve uname -x on solaris 2.5.1, since it
 +#                 does not support this switch.
 +#               - [ "​SWAP_INFO"​ = "​Y"​ ] was missing a $
 +#               - new comment line for testing
 +#               - swap -s on solaris 2.51 returns "​1"​
 +# version 3.5 - Added support for Linux
 +#               - physical cpu count for both Solaris and Linux
 +#               - OS release information for both Solaris and Linux
 +#               - have not tested SWAP_INFO for Linux
 +# version 3.6 - Added some support for Mac OS X (Darwin) ​
 +#               - modularised some of the procedures
 +#               - removed need for prtdiag on Linux
 +# version 3.9 - Added some support for Solaris zones
 +#               - added support for dual core Ultra sparc IV
 +# version 3.9.1 - started support for Sun4v Niagara chips
 +# version 3.10 - Added more dmidecode entries
 +#
 +# BIG BROTHER / XXXXXXXXXXXXXXXX status
 +#
 +# Written by Paul A. Luzzi
 +#  on March 22, 2000
 +#
 +# 3.0 Updates by David Levin
 +#  on January 3, 2001
 +#
 +# 3.1 Updates by Craig Cook   26 Apr 2001
 +# 3.2 Updates by Craig Cook   31 Oct 2001
 +# 3.3 Updates by Craig Cook   21 Nov 2001
 +# 3.5 Updates by Richard Deal & Dan Gomez 1 Oct 2004
 +# 3.6 Updates by Richard Deal 6 Oct 2004
 +# 3.7 Updates by Daniel Gomez 6 Dec 2004 - update paths
 +# 3.8 Updates by Daniel Gomez 8/2/05- added /​etc/​*release
 +# 3.9 Updates by Richard Deal 9/1/05
 +# 3.10 Updates by Daniel Gomez 8/18/07
 +
 +########################################​
 +# NOTE
 +# This has been tested with BB 1.8c and 1.9e
 +
 +# Tested on :
 +#   Sun Solaris, Linux, Darwin
 +########################################​
 +
 +###########################################################################​
 +# INSTALLATION
 +#  step 1  - update bb-bbexttab to include this bb-cpu2.sh
 +#            (older BB versions update EXT section of the bbdef.sh script)
 +#
 +#  step 2 - if you want this script to show swap info uncomment
 +#             ​SWAP_INFO="​Y"​
 +#           NOTE: it does not do any error checking on swap space though
 +#
 +#  step 3 - copy lines mentioned to bbsys.local (without the #'s)
 +#
 +#  step 4 - if you are using an older version of BB without bb-bbexttab
 +#             and you don't want this run on every client uncomment
 +#             ​CHECK_BB_HOSTS="​Y"​ and add the name of this $TEST to
 +#             ​bb-hosts for this client. eg.
 +#             ​myserver1.domain.com ​  # cpu2
 +#
 +#  step 5 - restart Big Brother
 +#
 +#  *Linux* ​
 +#       ​install dmidecode to determin actual CPU count
 +#
 +# NOTE - the TEST variable in the configuration section, this is the name
 +#        used as the column header and in the BB-HOSTS file.
 +###########################################################################​
 +
 +###########################################################################​
 +# For testing, ensure BBHOME is set and uncomment the following line
 +# BB="";​ BBDISP="​echo"​
 +###########################################################################​
 +
 +##################################​
 +# CONFIGURE IT HERE
 +##################################​
 +TEST="​cpu2"​
 +BBPROG="​$0";​ export BBPROG
 +
 +VERSION="<​center><​h6>​- ID: bb-cpu2.sh, v 3.10 2007/08/24 -</​h6></​center>"​
 +
 +#
 +# Start of lines to put in bbsys.local for Solaris
 +#
 +# SWAP="/​usr/​sbin/​swap"​
 +# PSRINFO="/​usr/​sbin/​psrinfo"​
 +# MPSTAT="/​usr/​bin/​mpstat"​
 +# UNAME="/​sbin/​uname"​
 +# PLATFORM_SPEC=`$UNAME -i`
 +# PRTDIAG_COMMAND="/​usr/​platform/​$PLATFORM_SPEC/​sbin/​prtdiag"​
 +# PRTDIAG_OPT="​-v"​
 +# export SWAP PSRINFO MPSTAT UNAME
 +
 +#
 +# Start of lines to put in bbsys.local for Linux
 +#
 +# SWAP="/​sbin/​swapon"​
 +# PSRINFO="​cat /​proc/​cpuinfo"​
 +# MPSTAT="/​usr/​bin/​mpstat -P ALL"
 +# UNAME="/​bin/​uname"​
 +# export SWAP PSRINFO MPSTAT UNAME
 +#
 +# For Linux this determins actual cpu count
 +# you can use sudo to run dmidecode if need be
 +#
 +if [ -x "/​usr/​local/​bin/​sudo"​ ]; then
 +  DMIDECODE="/​usr/​local/​bin/​sudo /​usr/​sbin/​dmidecode"​
 +else
 +  DMIDECODE="/​usr/​bin/​sudo /​usr/​sbin/​dmidecode"​
 +fi
 +
 +#​DMIDECODE="/​usr/​local/​bin/​sudo /​usr/​sbin/​dmidecode"​
 +
 +#
 +# Start of lines to put in bbsys.local for Mac OS X Darwin
 +#
 +# UNAME="/​usr/​bin/​uname"​
 +# export UNAME
 +
 +#
 +# End of lines to put in bbsys.local
 +#
 +
 +# define colours for graphics
 +RED_PIC="&​red"​
 +YELLOW_PIC="&​yellow"​
 +
 +# don't scan through bb-hosts every time
 +# this is here for older BB versions without bb-bbexttab
 +# uncomment to activate
 +#​CHECK_BB_HOSTS=Y
 +
 +# Uncomment to display swap info
 +#​SWAP_INFO="​Y"​
 +
 +##################################​
 +# Start of script
 +##################################​
 +
 +if test ! "​$BBHOME"​
 +then
 + echo "​template:​ BBHOME is not set"
 + exit 1
 +fi
 +
 +if test ! -d "​$BBHOME"​
 +then
 + echo "​template:​ BBHOME is invalid"​
 + exit 1
 +fi
 +
 +if test ! "​$BBTMP" ​                     # GET DEFINITIONS IF NEEDED
 +then
 +         # echo "*** LOADING BBDEF ***"
 +        . $BBHOME/​etc/​bbdef.sh ​         # INCLUDE STANDARD DEFINITIONS
 +fi
 +
 +#
 +# Define header
 +#
 +get_header()
 +{
 +  echo ""​
 +  echo "<​FONT SIZE=+2><​b>​$1</​b></​FONT>​ ($2 $3)"
 +  echo ""​
 +  #If you do not want the header in a bigger font use line below instead
 +  #  echo "<​b>​$1</​b>​ ($2 $3)"
 +}
 +
 +#
 +# Define footer
 +#
 +get_footer()
 +{
 +  #echo "<​BR><​BR>"​
 +  echo ""​
 +}
 +
 +#
 +# Mac OS X Darwin prtdiag cpu info
 +#
 +darwin_prtdiag() {
 +
 +  printf "​CPU\tCPU MHz     L2/L3 Cache     CPU Model  CPU Type\n"​
 +  printf "​%b---\t------- ​   ------------- ​   --------- ​ --------\n"​
 +
 +  CPUSPEED=`system_profiler SPHardwareDataType | $GREP "CPU Speed" | cut -d ":"​ -f 2-`
 +  L2CACHE=`system_profiler SPHardwareDataType | $GREP "L2 Cache" | cut -d ":"​ -f 2-`
 +  L3CACHE=`system_profiler SPHardwareDataType | $GREP "L3 Cache" | cut -d ":"​ -f 2-`
 +  CPU_MODEL=`system_profiler SPHardwareDataType | $GREP "CPU Type" | $AWK {'​print $4'}`
 +  CPU_TYPE=`hostinfo | $GREP "​Processor type" | $AWK {'​print $3'}`
 +  for i in `hostinfo | grep active | cut -d : -f 2-` ; do
 +    printf " $i\t$CPUSPEED\t ​ $L2CACHE /​$L3CACHE\t$CPU_MODEL\t$CPU_TYPE\n"​
 +  done
 +} # end darwin_prtdiag
 +
 +#
 +# Linux prtdiag cpu info
 +#
 +linux_prtdiag() {
 +
 +  printf "​CPU\t ​   CPU MHz     CACHE (KB)     ​Bogomips\n"​
 +  printf "​%b---\t ​  ​--------- ​   ---------- ​    ​-------- \n"
 +
 +  for i in `grep "​^[^*]*processor"​ /​proc/​cpuinfo | grep -v "​ID"​ |cut -d ":"​ -f 2| perl -pe '​s/​^\s+//'​`;​ do
 +    CPULINE=`grep processor /​proc/​cpuinfo |grep -v "​Physical"​ |grep -w $i`
 +    CPUSPEED=`grep -A20 -w "​$CPULINE"​ /​proc/​cpuinfo |grep "cpu MHz" | cut -d " " -f 3-`
 +    CPUCACHE=`grep -A20 -w "​$CPULINE"​ /​proc/​cpuinfo |grep "cache size" | cut -d " " -f 3-`
 +    BOGOMIPS=`grep -A20 -w "​$CPULINE"​ /​proc/​cpuinfo |grep "​bogomips"​ | cut -d " " -f 2`
 +    CPUARCH=`grep -A20 -w "​$CPULINE"​ /​proc/​cpuinfo |grep "model name" | cut -d " " -f 3-`
 +    printf " $i\t    $CPUSPEED\t ​ $CPUCACHE\t$BOGOMIPS ​ \t$CPUARCH\n"​
 +  done
 +} # end linux_prtdiag
 +
 +# Get Setup - check environment
 +get_setup () {
 +  #####
 +  #####  Setup any and all variables before beginning.
 +  #####
 +  # Check defaults have been set
 +  if [ "​$UNAME"​ = ""​ ]; then
 +    if [ $BBOSTYPE = "​darwin"​ ] ; then
 +      UNAME="/​usr/​bin/​uname"​
 +    else
 +      UNAME="/​bin/​uname"​
 +    fi
 +    echo ""​
 +    echo "​$YELLOW_PIC UNAME command is not defined in etc/​bbsys.local - using default: $UNAME"​
 +  fi
 +
 +  if [ $BBOSTYPE != "​darwin"​ ] ; then
 +    if [ "​$SWAP"​ = ""​ ]; then
 +      SWAP="/​usr/​sbin/​swap"​
 +      echo ""​
 +      echo "​$YELLOW_PIC SWAP command is not defined in etc/​bbsys.local - using default: $SWAP"
 +    fi
 +
 +    if [ "​$PSRINFO"​ = ""​ ]; then
 +      PSRINFO="/​usr/​sbin/​psrinfo"​
 +      echo ""​
 +      echo "​$YELLOW_PIC PSRINFO command is not defined in etc/​bbsys.local - using default: $PSRINFO"​
 +    fi
 +
 +    if [ "​$MPSTAT"​ = ""​ ]; then
 +      if [ `$UNAME -s` = "​Linux"​ ] ; then
 +        MPSTAT="/​usr/​bin/​mpstat -P ALL"
 +      else
 +        MPSTAT="/​usr/​bin/​mpstat"​
 +      fi
 +      echo ""​
 +      echo "​$YELLOW_PIC MPSTAT command is not defined in etc/​bbsys.local - using default: $MPSTAT"​
 +    fi
 +    if [ `$UNAME -s` != "​Linux"​ ] ; then
 +      if [ "​$PLATFORM_SPEC"​ = ""​ ]; then
 +        PLATFORM_SPEC=`$UNAME -i`
 +      fi
 +  ​
 +      if [ "​$PRTDIAG_COMMAND"​ = ""​ ]; then
 +        PRTDIAG_COMMAND="/​usr/​platform/​$PLATFORM_SPEC/​sbin/​prtdiag"​
 +      fi
 +  ​
 +      if [ "​$PRTDIAG_OPT"​ = ""​ ]; then
 +        PRTDIAG_OPT="​-v"​
 +        echo ""​
 +        echo "​$YELLOW_PIC PRTDIAG_OPT is not defined in etc/​bbsys.local - using default: $PRTDIAG_OPT"​
 +      fi
 +
 +    fi
 +
 +  fi # end if darwin
 +  export COLOR
 +
 +} # end get_setup
 +
 +get_procinfo () {
 +  #####
 +  #####  List CPU Info. 
 +  #####
 +
 + case $BBOSTYPE in
 +   ​darwin )
 +      get_header "​Processor Info" "​hostinfo"​
 +      NUM_PROCS=`hostinfo | grep "​physically available"​ |  $AWK {'​print $1'}`
 +      ​
 +      hostinfo | $GREP -A3 "​configured"​
 +
 +      get_footer
 +     ;;
 +   ​solaris )
 +      CATCH_COMMAND=` $PSRINFO `
 +
 +      get_header "​Processor Info" "​$PSRINFO"​
 +    ​
 +      NUM_PROCS=` $PSRINFO | $WC -l `
 +      if [ "​$?"​ = "​0"​ ]; then
 +          ON_LINES=`$PSRINFO | $EGREP "​on-line|no-intr"​ | $WC -l`
 +          if [ "​$NUM_PROCS"​ = "​$ON_LINES"​ ]; then
 +              echo "​$CATCH_COMMAND"​
 +          else
 +              COLOR="​red"​
 +              echo "​$RED_PIC Only $ON_LINES of $NUM_PROCS on-line"​
 +              echo "​$CATCH_COMMAND"​
 +          fi
 +      else
 +          COLOR="​red"​
 +          echo "​$RED_PIC Problem with some/all processors !!!"
 +      fi
 +
 +      get_footer
 +     ;;
 +   linux | redhat | debian | \
 +   * ) ;;
 + esac
 + ​export COLOR
 +   
 +} # end get_procinfo
 +
 +get_mpstat () {
 +  #####
 +  #####  List more CPU Info. 
 +  #####
 +
 +  if [ $BBOSTYPE != "​darwin"​ ] ; then
 +    CATCH_COMMAND=` $MPSTAT `
 +
 +    get_header "​mpstat info" "​$MPSTAT"​
 +
 +    if [ "​$?"​ = "​0"​ ]; then
 +        echo "​$CATCH_COMMAND"​
 +    else
 +        COLOR="​red"​
 +        echo "​$RED_PIC Problem with some/all processors !!!"
 +    fi
 +    get_footer
 +  fi
 +  export COLOR
 +   
 +} # end get_mpstat
 +
 +get_prtdiag () {
 +  #####
 +  #####  List still more CPU Info. 
 +  #####
 +
 +  if [ "​$OS_REL"​ != "​5.5.1"​ ] ; then
 +    # Solaris 2.5.1 does not support -X on uname, so skip this test
 +
 +      case $BBOSTYPE in
 +        darwin )
 +          get_header "​prtdiag info" "from system_profiler and hostinfo"​
 +          ECHO_COMMAND=`darwin_prtdiag`
 +          ;;
 +        solaris )
 +          ZONENAME=/​usr/​bin/​zonename
 +          if [ -s "​$ZONENAME"​ ]; then
 +            ZONE=`$ZONENAME`
 +          else
 +            ZONE="​global"​
 +          fi
 +          if  [ "​$ZONE"​ != "​global"​ ] ; then
 +            get_header "​Sub-zone"​ "​$ZONE"​
 +          else
 +            get_header "​prtdiag info" "​$PRTDIAG_COMMAND $PRTDIAG_OPT \| $AWK '/​CPU.*.CPU/,​ /^$/ {print $0}'"​
 +
 +            if [ -s "​$PRTDIAG_COMMAND"​ ]; then
 +              ECHO_COMMAND=` $PRTDIAG_COMMAND $PRTDIAG_OPT |
 +                             $AWK '/​CPU.*.CPU/,​ /^$/ {print $0}' |
 +                             $GREP -v "​^$"​ `
 +              CATCH_COMMAND=` $PRTDIAG_COMMAND $PRTDIAG_OPT |
 +                              $AWK '/​CPU.*.CPU/,​ /^$/ {print $0}' |
 +                              $GREP -v "​^$"​ | $TAIL +4 `
 +              CONFIGURED_PROCS=` $PRTDIAG_COMMAND $PRTDIAG_OPT |
 +                                 $AWK '/​CPU.*.CPU/,​ /^$/ {print $0}' |
 +                                 $GREP -v "​^$"​ |
 +                                 $TAIL +4 |
 +                                 $WC |
 +                                 $AWK '​{print $NF}' `
 +              if [ "​$OS_REL"​ = "​5.10"​ ] ; then
 +                # Solaris 10 supports psrinfo -p and Sparc IV chips
 +                INSTALLED_CHIPS=` $PSRINFO -p`
 +                INSTALLED_PROCS=` $PSRINFO -p`
 +              else
 +                INSTALLED_PROCS=` $UNAME -X |
 +                                  $GREP NumCPU |
 +                                  $AWK '​{print $NF}' `
 +              fi
 +            else
 +              echo "No prtdiag installed on this platform - $PLATFORM_SPEC"​
 +            fi
 +          fi
 +          ;;
 +        linux | redhat | debian | \
 +        * )
 +          get_header "​prtdiag info" "from /​proc/​cpuinfo"​
 +          ECHO_COMMAND=`linux_prtdiag`
 +          ;;
 +      esac
 +  ​
 +      if [ `$UNAME -m` != "​sun4v"​ ] ; then
 +        if [ "​$CONFIGURED_PROCS"​ != "​$INSTALLED_PROCS"​ ]; then
 +          COLOR="​red"​
 +          echo "​$RED_PIC psrinfo reports $INSTALLED_PROCS installed processors, but prtdiag shows only $CONFIGURED_PROCS present."​
 +          echo "Some processors seem to be offline or problematic !!!"
 +      #  else
 +      #    echo "​$ECHO_COMMAND"​
 +        fi
 +      fi
 +      echo "​$ECHO_COMMAND"​
 +   
 +    get_footer
 +
 +  fi
 +  export COLOR
 +} # end get_prtdiag
 +
 +get_sysinfo () {
 + case $BBOSTYPE in
 +   ​darwin )
 +      get_header "uname info" "​hostinfo"​
 +      echo "Node = `$UNAME -n`"
 +      NUM_PROCS=`hostinfo | grep "​physically available"​ |  $AWK {'​print $1'}`
 +      echo "​Physical CPUs = $NUM_PROCS"​
 +      system_profiler SPSoftwareDataType | $GREP "​System Version"​
 +      $UNAME -v
 +      ​
 +      get_footer
 +     ;;
 +   ​solaris )
 +      get_header "uname info" "​$UNAME -X | $EGREP Node|NumCPU"​
 +
 +      if [ "​$OS_REL"​ != "​5.5.1"​ ] ; then
 +        # Solaris 2.5.1 does not support -X on uname, so skip this test
 +         ​CATCH_COMMAND=` $UNAME -X | $EGREP "​Node|NumCPU"​ `
 +         if [ "​$?"​ = "​0"​ ]; then
 +           echo "​$CATCH_COMMAND"​
 +         else
 +           ​COLOR="​red"​
 +           echo "​$RED_PIC Problem with uname command. ​ Cant determine installed processor count !!!"
 +         fi
 +         if [ "​$OS_REL"​ = "​5.10"​ ] ; then
 +           echo "Chips = $INSTALLED_CHIPS"​
 +         fi
 +      fi
 +      $GREP Solaris /​etc/​release
 +      get_footer
 +     ;;
 +   linux | redhat | debian | \
 +   * )
 +      get_header "uname info" "​$UNAME -X | $EGREP Node|NumCPU"​
 +      echo "Node = `$UNAME -n`"
 +      echo "​System CPUs   = `$GREP processor /​proc/​cpuinfo | grep -v Physical | $WC -l`"
 +      if [ "​$DMIDECODE"​ != ""​ ]; then
 +        echo "​Physical CPUs = `$DMIDECODE ​ | grep "​Central Processor"​ | wc -l`"
 +        MANUFACTURER=` $DMIDECODE -s system-manufacturer`
 +        echo "​System Manufacturer = $MANUFACTURER"​
 +        echo "​System Product Name = `$DMIDECODE -s system-product-name`"​
 +        echo "​System Serial Number = `$DMIDECODE -s system-serial-number`"​
 +        echo "​Chassis Serial Number = `$DMIDECODE -s chassis-serial-number`"​
 +        echo "BIOS Version = `$DMIDECODE -s bios-version`"​
 +      fi
 +      echo "Boot Command = `$CAT /​proc/​cmdline`"​
 +      echo "​Kernel Version = `$CAT /​proc/​version`"​
 +      echo "​Version Release:"​
 +      $CAT /​etc/​*release
 +     ;;
 + esac
 + ​export COLOR
 +} # end get_sysinfo
 +
 +#####
 +#####  Get Status proc - used to get all responses
 +#####
 +get_swap() ​
 +{
 +
 +  #####
 +  #####  System Swap and Memory Monitoring
 +  #####
 +  if [ "​$SWAP_INFO"​ = "​Y"​ ]; then
 +
 +    get_header "Swap Info" "$SWAP -l and $SWAP -s"
 +
 +    CATCH_COMMAND1=` $SWAP -l `
 +
 +    if [ "​$?"​ = "​0"​ ]; then
 +      echo "​$CATCH_COMMAND1"​
 +    else
 +      COLOR="​red"​
 +      echo "​$RED_PIC Problem with swap !!!"
 +    fi
 +
 +    # This is the "​normal"​ return value on sucess
 +    RETURN_VAL=0
 +
 +    if [ "​$OS_REL"​ = "​5.5.1"​ ] ; then
 +      # Solaris 2.51 returns "​1"​ from "swap -s"!!
 +      RETURN_VAL=1
 +    fi
 +
 +    CATCH_COMMAND2=` $SWAP -s `
 +
 +    if [ "​$?"​ = "​$RETURN_VAL"​ ]; then
 +      echo "​$CATCH_COMMAND2"​
 +    else
 +      COLOR="​red"​
 +      echo "​$RED_PIC Problem with swap !!!"
 +    fi
 +  fi
 +
 +  export COLOR
 +
 +} # end get_swap
 +
 +  #####
 +  #####  Setup some variables for use later
 +  #####
 +  COLOR="​green"​
 +  OS_REL=` $UNAME -r `
 +
 +#####
 +#####  Main body
 +#####
 +
 +if [ "​$CHECK_BB_HOSTS"​ = "​Y"​ ]; then
 +  # convert ","​ to "​."​ in the hostname
 +  MACHINE_WITH_DOTS=`echo $MACHINE | $SED '​s/,/​\./​g'​`
 +
 +  $GREP $MACHINE_WITH_DOTS $BBHOSTS | $GREP "​$TEST"​ |
 +  while read line
 +  do
 +    if [ ! -z "​$line"​ ]; then
 +      get_status > $BBTMP/​$MACHINE.$TEST
 +
 +      # NOW USE THE BB COMMAND TO SEND THE DATA ACROSS
 +      $BB $BBDISP "​status $BBTMP/​$MACHINE.$TEST $COLOR `$DATE` `$CAT $BBTMP/​$MACHINE.$TEST` "
 +    fi
 +  done
 +else
 +  get_setup > $BBTMP/​$MACHINE.$TEST
 +  get_procinfo >> $BBTMP/​$MACHINE.$TEST
 +  get_mpstat >> $BBTMP/​$MACHINE.$TEST
 +  get_prtdiag >> $BBTMP/​$MACHINE.$TEST
 +  get_sysinfo >> $BBTMP/​$MACHINE.$TEST
 +  if [ "​$SWAP_INFO"​ = "​Y"​ ]; then
 +    get_swap >> $BBTMP/​$MACHINE.$TEST
 +  fi
 +
 +  # NOW USE THE BB COMMAND TO SEND THE DATA ACROSS
 +
 +#​COLOR="​green"​ # hard code to green till finished.
 +  $BB $BBDISP "​status $MACHINE.$TEST $COLOR `$DATE` `$CAT $BBTMP/​$MACHINE.$TEST`
 + 
 +$VERSION"​
 +fi
 +
 +# Clean up our mess
 +# Checking for existence of files since the whole test may be optional
 +#   and may not actually run on every client
 +#
 +if [ -f $BBTMP/​$MACHINE.$TEST ]; then
 +  $RM $BBTMP/​$MACHINE.$TEST
 +fi
 +
 +##############################################​
 +# end of script
 +##############################################​
 +</​code>​
 +</​hidden>​
 +
 +===== Known  Bugs and Issues =====
 +
 +===== To Do =====
 +
 +===== Credits =====
 +  * Paul A. Luzzi
 +  * David Levin
 +  * Craig Cook
 +  * Butch Deal
 +  * Daniel Gomez
 +
 +===== Changelog =====
 +
 +  * **2000-03-22**
 +    * Initial release .......
 +
 +  * version 3.5 - Added support for Linux
 +               - physical cpu count for both Solaris and Linux
 +               - OS release information for both Solaris and Linux
 +               - have not tested SWAP_INFO for Linux
 +  * version 3.6 - Added some support for Mac OS X (Darwin) ​
 +               - modularised some of the procedures
 +               - removed need for prtdiag on Linux
 +  * version 3.9 - Added some support for Solaris zones
 +               - added support for dual core Ultra sparc IV
 +  * version 3.9.1 - started support for Sun4v Niagara chips
 +  * version 3.10 - Added more dmidecode entries
 +
  
  • monitors/cpu2.txt
  • Last modified: 2009/11/23 05:42
  • (external edit)