====== bb-swap.sh ====== ^ Author | [[ gjohnson@trantor.org | Galen Johnson ]] | ^ Compatibility | Xymon 4.2 | ^ Requirements | Unix, Linux | ^ Download | | ^ Last Update | 2007-09-30 | ===== Description ===== A script to monitor the amount of free swap space. ===== Installation ===== === Client side === - Install bb-swap.sh into the $HOBBITCLIENTHOME/ext/ directory - Modify/install bb-swap.cfg into $HOBBITCLIENTHOME/etc directory # Configuration file for bb-swap.sh external script # # Change History: # # 1.5-CP 07/27/2000 First release # # Edit variables below for your needs # # Set thresholds for free swap space remaining # SWAPWARN="25" # GO YELLOW AT THIS LEVEL SWAPPANIC="15" # GO RED AND PAGE AT THIS LEVEL - Modify your clientlaunch.cfg, adding: [bbswap] ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg CMD $HOBBITCLIENTHOME/ext/bb-swap.sh LOGFILE $HOBBITCLIENTHOME/logs/bb-swap.log INTERVAL 5m === Server side === - For NCV Graphs: - hobbitgraph.cfg, add: [bbswap] TITLE Swap Utilization YAXIS % Free DEF:free=bbswap.rrd:PercentFree:AVERAGE LINE2:free#0000FF:% Swap free -u 100 -b 1024 GPRINT:free:LAST: \: %5.1lf (cur) GPRINT:free:MAX: \: %5.1lf (max) GPRINT:free:MIN: \: %5.1lf (min) GPRINT:free:AVERAGE: \: %5.1lf (avg)\n - hobbitserver.cfg, you'll be modifying TEST2RRD and adding a variable named NCV_bbswap: TEST2RRD="[...],bbswap=ncv" NCV_bbswap="PercentFree:GAUGE,*:NONE" - (optional)add the following to add the bbswap info to the trends coloumn: TRENDS:*,[...],bbswap ===== Source ===== ==== bb-swap.sh ==== #!/bin/sh # # bb-swap.sh - Xymon extension script to monitor swap space. # # Based on bb-swap.sh (http://www.deadcat.net/viewfile.php?fileid=810) # from deadcat.net # ############################################################################### #--------1---------2---------3---------4---------5--------6---------7---------8 # # Scripts in the $HOBBITCLIENT/ext directory are only run if # they are defined in the clientlaunch.cfg for the current host # Add the following to your clientlaunch.cfg: # #[bbswap] # ENVFILE $HOBBITCLIENTHOME/etc/hobbitclient.cfg # CMD $HOBBITCLIENTHOME/ext/bb-swap.sh # LOGFILE $HOBBITCLIENTHOME/logs/bb-swap.log # INTERVAL 5m # # # Set up Column Name for display # TEST="bbswap" # # The name of the configuration file # BBSWAPCONFIG=$HOBBITCLIENTHOME/etc/bb-swap.cfg if [ ! -r $BBSWAPCONFIG ] then echo "Configuration file $BBSWAPCONFIG not found... exiting" exit 1 else # echo "*** LOADING $BBSWAPCONFIG ***" . $BBSWAPCONFIG fi #===================================================================== # NOTIFY ON SWAP SPACE UTILIZATION #===================================================================== # # echo "*** SWAP SPACE TEST ***" COLOR="green" case "$BBOSTYPE" in aix) # For AIX [from Tom Kauffman (kauffmanT@nibco.com) 11/19/1999] MSG=`/usr/sbin/lsps -l | $GREP "%" | /usr/bin/tr -cd '[0-9] \012' | $AWK '{ USED = $2 / 100 * $1 FREE = $1 - USED print " Total Used Free %Free" printf "swap %7d %7d %7d %3d%%\n", $1, USED, FREE, 100 - $2 }' -` used=`/usr/sbin/lsps -s | $GREP "%" | $AWK '{ print $2 }' | cut -d% -f1` SWAPPCT=`echo "scale=2;100 - $used" | bc` ;; dynix) # For Sequent DYNIX/ptx [from Stephen Couch (couch@freemontcomp.com) 12/16/1999] total=`/etc/swap -l | $GREP "dsk" | $AWK '{blks=blks+$4};END{print blks}'` free=`/etc/swap -f | $GREP "used" | $AWK '{print $3}'` dec=`echo "scale=2;$free / $total * 100" | bc` SWAPPCT=`echo $dec|cut -d. -f1` ;; freebsd) # For FreeBSD [from Rick Owens (owens@fvcc.cc.mt.us) 12/22/1999] SWAPPCT=`/usr/sbin/swapinfo | /usr/bin/tail -1 | $AWK '{print 100 - $5}'` ;; hp-ux) # For HP UNIX [from Jason Armbruster (armbrust@cusys.edu) 02/28/1999] MSG=`/usr/sbin/swapinfo -t | $GREP total | /usr/bin/tr -cd '[0-9] \012' | $AWK '{ print " Total Used Free %Used" printf "swap %7d %7d %7d %4d%%\n", $1, $2, $3, 100 * $2 / $1 }' -` used=`/usr/sbin/swapinfo -t | $GREP "total" | $AWK '{ print substr($5,0,2) }'` SWAPPCT=`echo "scale=2;100 - $used" | bc` ;; irix) # For IRIX [from Christian Perrier (christian.perrier@onera.fr) 09/11/2000] avail=`/sbin/swap -lbfn | $GREP -v '^ #' | $AWK '{ print $7 }'` total=`/sbin/swap -lbfn | $GREP -v '^ #' | $AWK '{ print $8 }'` dec=`echo "scale=2;$avail / $total * 100" | bc` SWAPPCT=`echo $dec | cut -d. -f1` ;; linux|redhat|debian) # For Debian Linux : free lives in /usr/bin MSG=`/usr/bin/free | $GREP "Swap" | /usr/bin/tr -cd '[0-9] \012' | $AWK '{ print " Total Used Free %Free" printf "swap %9d %9d %9d %3d%%\n", $1, $2, $3, 100 * $3 / $1 }' -` free=`/usr/bin/free | $GREP "Swap:" | $AWK '{ print $4 }' | cut -dk -f1` total=`/usr/bin/free | $GREP "Swap:" | $AWK '{ print $2 }' | cut -dk -f1` dec=`echo "scale=2;$free / $total * 100" | bc` SWAPPCT=`echo $dec | cut -d. -f1` ;; openbsd|netbsd) # For OpenBSD/netbsd [from Josh Rivel (jrivel@dti.net) SWAPPCT=`/sbin/swapctl -l | /usr/bin/tail -1 | $AWK '{ print 100 - $5 }'` ;; osf) # For Compaq Tru64 UNIX/Digital UNIX/ Digital OSF/1 SWAPPCT=`/usr/sbin/swapon -s | $GREP "Available" | $AWK '{ print substr($6,0,2) }'` ;; sco|unixware) # For SCO 5 & unixware v2 [from Nicolas Chuche (nchuche@teaser.fr) 02/16/2000) free=`/etc/swap -l | $GREP -v path | $AWK '{ print $5 }'` total=`/etc/swap -l | $GREP -v path | $AWK '{ print $5 }'` dec=`echo "scale=2;$free / $total * 100" | bc` SWAPPCT=`echo $dec | cut -d. -f1` ;; sunos|solaris) # For Solaris and SunOS MSG=`/usr/sbin/swap -s | /usr/bin/tr -cd '[0-9] \012' | $AWK '{ TOT = $3 + $4 print " Total Used Free % Free" printf "swap %7d %7d %7d %5d%%\n", TOT, $3, $4, 100 * $4 / TOT }' -` used=`/usr/sbin/swap -s | $AWK '{ print $9 }' | cut -dk -f1` avail=`/usr/sbin/swap -s | $AWK '{ print $11 }' | cut -dk -f1` total=`expr $used + $avail` dec=`echo "scale=2;$avail / $total * 100" | bc` SWAPPCT=`echo $dec | cut -d. -f1` ;; *) # For Unknown Operating Systems SWAPPCT=100 ;; esac MSG=" Percent Free: ${SWAPPCT}% ${MSG}" if test "$SWAPPCT" -le "$SWAPPANIC" then COLOR="red" elif test "$SWAPPCT" -le "$SWAPWARN" then COLOR="yellow" else COLOR="green" fi # # Now send this information to the Xymon server # $BB $BBDISP "status $MACHINE.$TEST $COLOR `$DATE` ${MSG} " ===== Known Bugs and Issues ===== ===== To Do ===== * update format for missing OSes ===== Credits ===== * [[http://www.deadcat.net/viewfile.php?fileid=810|bb-swap.sh]] and [[http://www.deadcat.net/viewfile.php?fileid=622|dpace.sh.1.2]] from deadcat.net ===== Changelog ===== * **2007-09-30** * Initial release