[BACK]Return to index.html CVS log [TXT][DIR] Up to [local] / nagios / check_hw_sensors

Diff for /nagios/check_hw_sensors/index.html between version 1.3 and 1.6

version 1.3, 2006/05/04 02:39:16 version 1.6, 2007/01/06 03:27:53
Line 1 
Line 1 
 <html><head><title>Nagios Check - check_hw_sensors</title></head>  <html><head><title>Nagios Check - check_hw_sensors</title></head>
     <body>      <body>
         <h1>Nagios Check - check_hw_sensors</h1>          <h1>Nagios Check - check_hw_sensors</h1>
         <p>check_hw_sensors plugin for Nagios monitors sysctl hw.sensors on OpenBSD</p>          <p>check_hw_sensors plugin for Nagios monitors sysctl hw.sensors on OpenBSD</p>
         <p>With the new sensor framework in OpenBSD 3.9, I wanted to be able to monitor the new hw.sensors from <a href='http://www.nagios.org/'>Nagios</a> and this is what I have.  It is currently a work in progress although it does seem to work just fine.  The documentation is a bit thin and I don't know how reliable it is.  I would be happy to accept patches.  Send them to <a href='mailto:andrew+nagios@rraz.net'>andrew+nagios@rraz.net</a>.  I know the docs aren't as good as I would like, so if there are places that need clarification, please let me know!</p>          <p>With the new sensor framework in OpenBSD 3.9, I wanted to be able to monitor the new hw.sensors from <a href='http://www.nagios.org/'>Nagios</a> and this is what I have.  The documentation is a bit thin and I don't know how reliable it is.  I would be happy to accept patches.  Send them to <a href='mailto:andrew+nagios@rraz.net'>andrew+nagios@rraz.net</a>.  I know the docs aren't as good as I would like, so if there are places that need clarification, please let me know!</p>
         <p>What I think is really kewl about this plugin is that it can use the same sensorsd.conf as sensorsd.  That means that they can be easily kept in sync.  But, since Nagios supports both warning and critical alerts, it turned out really handy that sensorsd ignores any additional capabilities in the file.  The addtional capabilities check_hw_sensors supports are described below.  If you have an /etc/sensorsd.conf with the checks you want, it can be run as simply as 'check_hw_sensors -f'.</p>                  <p>New in this release is support for the new 2 level sensors in OpenBSD 4.0-current.  They seem way more better, and I may change some stuff to only support that version after I get all my machines moved to 4.1</p>
         <p>TODO:                  <p>It has the ability to check the sensors that report their status.  Since many sensors support this, it can make the size of your sensorsd.conf much smaller.  For example, check_hw_sensors will automatically check these two sensors:
         <ul>                  <ul>
             <li>need real documentation.</li>                          <li>hw.sensors.76=esm0, Fan 4, 3629 RPM, OK</li>
             <li>the ability to check the "status" entry that is in some output.  For example the OK here:<br>                          <li>hw.sensors.77=esm0, Fan 5, 0 RPM, CRITICAL</li>
             hw.sensors.1=esm0, CPU 1, OK, temp, 31.00 degC / 87.80 degF</li>                  </ul>
         </ul>                  It will report the status listed to Nagios.  For 76, it would be OK, for 77 it would be CRITICAL.  You don't need to put anything in a config file to support those.</p>
         </p>          <p>What I think is really kewl about this plugin is that it can use the same sensorsd.conf as sensorsd.  That means that they can be easily kept in sync.  But, since Nagios supports both warning and critical alerts, it turned out really handy that sensorsd ignores any additional capabilities in the file.  The addtional capabilities check_hw_sensors supports are described below.  If you have an /etc/sensorsd.conf with the checks you want, it can be run as simply as 'check_hw_sensors -f'.  If you only want to check the sensors that report their status, you can ever run it as just 'check_hw_sensors'.</p>
         <p><center><b><a href='check_hw_sensors-1.14.tar.gz'>Download the current version here</a></b></center></p>          <p>TODO:
         <h4>          <ul>
           Please be sure to support the <a href="http://www.openbsd.org">OpenBSD</a>              <li>need real documentation.</li>
           project by purchasing                          <li>the RANGE using the colon to separate probably screws up the getcap of sensorsd.conf, so it should probably get replaced with a dash or somesuch</li>
           <a href="http://www.openbsd.org/items.html">CDs</a>,          </ul>
           <a href="http://www.openbsd.org/tshirts.html">T-shirts</a>, or making a          </p>
           <a href="http://www.openbsd.org/donations.html">donation</a>.          <p><center><b><a href='check_hw_sensors-1.22.tar.gz'>Download the current version here</a></b></center></p>
           <br />          <h4>
           These finances ensure that OpenBSD will continue to exist, and            Please be sure to support the <a href="http://www.openbsd.org">OpenBSD</a>
           will remain <a href="http://www.openbsd.org/policy.html">free</a>            project by purchasing
           for everyone to use and reuse as they see fit.            <a href="http://www.openbsd.org/items.html">CDs</a>,
         </h4>            <a href="http://www.openbsd.org/tshirts.html">T-shirts</a>, or making a
         <pre>            <a href="http://www.openbsd.org/donations.html">donation</a>.
     check_hw_sensors (-f [&lt;FILENAME&gt;]|(-s &lt;hw.sensors id&gt; -w limit -c limit))            <br />
             These finances ensure that OpenBSD will continue to exist, and
 Usage:            will remain <a href="http://www.openbsd.org/policy.html">free</a>
     -f, --filename=FILE            for everyone to use and reuse as they see fit.
         FILE to load checks from (defaults to /etc/sensorsd.conf)          </h4>
     -s, --sensor=ID          <pre>
         ID of a single sensor.  "-s 0" means hw.sensors.0.      check_hw_sensors [-i] (-f [&lt;FILENAME&gt;]|(-s &lt;hw.sensors id&gt; [-w limit] [-c limit]))
     -w, --warning=RANGE or single ENTRY  
         Exit with WARNING status if outside of RANGE or if != ENTRY  Usage:
     -c, --critical=RANGE or single ENTRY      -i, --ignore-status
         Exit with CRITICAL status if outside of RANGE or if != ENTRY          Don't check the status of sensors that report it.
       -f, --filename=FILE
     -h (--help)       usage help          FILE to load checks from (defaults to /etc/sensorsd.conf)
         </pre>      -s, --sensor=ID
         <p>FILE is in the same format as <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd.conf'>sensorsd.conf(5)</a> plus some additional entries.  These additional entries in the file are ignored by <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd'>sensorsd(8)</a>.  </p>          ID of a single sensor.  "-s 0" means hw.sensors.0.
       -w, --warning=RANGE or single ENTRY
         <p>check_hw_sensors understands the following entries:<br>          Exit with WARNING status if outside of RANGE or if != ENTRY
         low, high, crit, warn, crit.low, crit.high, warn.low, warn.high</p>      -c, --critical=RANGE or single ENTRY
           Exit with CRITICAL status if outside of RANGE or if != ENTRY
         <p>An ENTRY depends on the type.  The descriptions in <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd.conf'>sensorsd.conf(5)</a>          </pre>
         can be used when appropriate, or you can use the following:          <p>FILE is in the same format as <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd.conf'>sensorsd.conf(5)</a> plus some additional entries.  These additional entries in the file are ignored by <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd'>sensorsd(8)</a>.  </p>
   
         <ul>          <p>check_hw_sensors understands the following entries:<br>
             <li>volts_dc, fanrpm or raw<br>                  low, high, crit, warn, crit.low, crit.high, warn.low, warn.high,
             Anything that includes digits.                  ignore, status</p>
             Both the value of the check and the value of the sensor  
             response that are not either a digit or period are stripped          <p>An ENTRY depends on the type.  The descriptions in <a href='http://www.openbsd.org/cgi-bin/man.cgi?query=sensorsd.conf'>sensorsd.conf(5)</a>
             and then the two resultant values are compared.</li>          can be used when appropriate, or you can use the following:
   
             <li>temp<br>          <ul>
             Can be as above, but if the entry has an F in it,              <li>fanrpm, volts_dc, amps, watthour, amphour, integer (raw), percent, lux or timedelta<br>
             it compares farenheit, otherwise it uses celcius.</li>              Anything that includes digits.
               Both the value of the check and the value of the sensor
             <li>indicator or drive<br>              response that are not either a digit or period are stripped
             does a case sensitive match of each              and then the two resultant values are compared.</li>
             entry in the comma separated list and if it does not match  
             any of the entries, it matches the status.  Does not support any low or high entries.</li>              <li>temp<br>
         </ul>              Can be as above, but if the entry has an F in it,
               it compares farenheit, otherwise it uses celcius.</li>
         <p>The entries 'crit' or 'warn' (or the -c or -w on the command line)  
         may be a RANGE or a comma separated list of acceptable values.              <li>indicator or drive<br>
         The comma separated list of values contains a list of things that              does a case sensitive match of each
         will NOT cause the status.  This is possibly counterintuitive, but              entry in the comma separated list and if it does not match
         you are more likely to know good values than bad values.</p>              any of the entries, it sets the status.</li>
           </ul>
         <p>A RANGE is a low ENTRY and a high ENTRY separated by a colon (:).  
         It can also be low: or :high with the other side left blank to only          <p>The entries 'crit' or 'warn' (or the -c or -w on the command line)
         make the single check..<p>          may be a RANGE or a comma separated list of acceptable values.
           The comma separated list of values contains a list of things that
         <p>check_hw_sensors (nagios-plugins 1.4.2) 1.14<br>          will NOT cause the status.  This is possibly counterintuitive, but
         The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute          you are more likely to know good values than bad values.</p>
         copies of the plugins under the terms of the GNU General Public License.  
         For more information about these matters, see the file named COPYING.</p>          <p>A RANGE is a low ENTRY and a high ENTRY separated by a colon (:).
         <h3>Example Sensorsd.conf</h3>          It can also be low: or :high with the other side left blank to only
         <pre>          make the single check..<p>
 # $OpenBSD$  
 # $ RedRiver: sensorsd.conf,v 1.1 2006/05/03 21:48:42 andrew Exp $                  <p>An entry marked "ignore" will cause that sensor to be skipped.
                   Generally used with status checking of all sensors to ignore sensors you
 #                  don't care about or that report incorrectly.</p>
 # Sample sensorsd.conf file. See sensorsd.conf(5) for details.  
 # This one has examples for use with nagios check_hw_sensors                  <p>If you are using --ignore-status, you can still check the status of
 # Actual sensors on a 2450 are below.                  individual sensors with a status entry.</p>
 #  
           <p>check_hw_sensors (nagios-plugins 1.4.2) 1.22<br>
 # hw.sensors.0=esm0, Motherboard, raw, 0          The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute
 # hw.sensors.1=esm0, CPU 1, OK, temp, 28.00 degC / 82.40 degF          copies of the plugins under the terms of the GNU General Public License.
 hw.sensors.1:high=50C:warn.high=40C          For more information about these matters, see the file named COPYING.</p>
   
 # hw.sensors.2=esm0, CPU 2, OK, temp, 30.00 degC / 86.00 degF          <h3>Example sensorsd.conf</h3>
 hw.sensors.2:high=50C:warn.high=40C          <pre>
   # hw.sensors.acpibat0.volt0=7.40 V DC, (voltage), OK
 # hw.sensors.3=esm0, Mainboard, OK, temp, 21.50 degC / 70.70 degF  # hw.sensors.acpibat0.volt1=8.30 V DC, (current voltage), OK
 hw.sensors.3:high=40C:warn.high=30C  # hw.sensors.acpibat0.watthour0=57.72 Wh, (last full capacity)
   # hw.sensors.acpibat0.watthour1=0.00 Wh, (warning capacity)
 # hw.sensors.4=esm0, CPU 1 Core, OK, volts_dc, 1.69 V  # hw.sensors.acpibat0.watthour2=0.12 Wh, (low capacity)
 hw.sensors.4:high=1.85V:warn.high=1.8V:low=1.60V:warn.low=1.65V  # hw.sensors.acpibat0.watthour3=57.72 Wh, (remaining capacity)
   hw.sensors.acpibat0.watthour3:warn.low=50 Wh:crit.low=30 Wh
 # hw.sensors.5=esm0, CPU 2 Core, OK, volts_dc, 1.70 V  # hw.sensors.acpibat0.raw0=2, (battery charging), OK
 hw.sensors.5:high=1.85V:warn.high=1.8V:low=1.60V:warn.low=1.65V  # hw.sensors.acpibat0.raw1=99, (rate)
   # hw.sensors.acpiac0.indicator0=On, (power supply)
 # hw.sensors.6=esm0, Motherboard +5V, OK, volts_dc, 4.95 V  hw.sensors.acpiac0.indicator0:crit=On
 hw.sensors.6:high=5.1V:warn.high=5.05V:low=4.90V:warn.low=4.85V  # hw.sensors.acpitz0.temp0=62.95 degC, (zone temperature)
   hw.sensors.acpitz0.temp0:warn.high=65 degC:crit.high=75 degC
 # hw.sensors.7=esm0, Motherboard +12V, OK, volts_dc, 11.94 V          </pre>
 hw.sensors.7:high=12.15V:warn.high=12.1V:low=11.8V:warn.low=11.85V                  <h3>CVS log for check_hw_sensors</h3>
                   <pre>
 # hw.sensors.8=esm0, Motherboard +3.3V, OK, volts_dc, 3.27 V  RCS file: /cvs/scripts/Admin scripts/check_hw_sensors/check_hw_sensors,v
 hw.sensors.8:high=3.5V:warn.high=3.4V:low=3.15V:warn.low=3.2V  Working file: check_hw_sensors
   head: 1.22
 # hw.sensors.9=esm0, Motherboard +2.5V, OK, volts_dc, 2.48 V  branch:
 hw.sensors.9:high=2.75V:warn.high=2.6V:low=2.25V:warn.low=2.4V  locks: strict
   access list:
 # hw.sensors.10=esm0, Motherboard GTL Term, OK, volts_dc, 1.49 V  symbolic names:
 hw.sensors.10:high=1.75V:warn.high=1.6V:low=1.25V:warn.low=1.4V  keyword substitution: kv
   total revisions: 22;    selected revisions: 22
 # hw.sensors.11=esm0, Motherboard Battery, OK, volts_dc, 2.93 V  description:
 hw.sensors.11:high=3.1V:warn.high=3.05V:low=2.75V:warn.low=2.8V  ----------------------------
   revision 1.22
 # hw.sensors.12=esm0, Chassis Intrusion, indicator, Off  date: 2007/01/06 03:16:41;  author: andrew;  state: Exp;  lines: +11 -4
 hw.sensors.12:crit=Off:warn=Off  Support the new dual level sensors
   ----------------------------
 # hw.sensors.13=esm0, Fan 1, OK, fanrpm, 3526 RPM  revision 1.21
 hw.sensors.13:low=3000:warn.low=3250  date: 2006/12/05 16:26:27;  author: andrew;  state: Exp;  lines: +5 -5
   new better example for 4.0
 # hw.sensors.14=esm0, Fan 2, OK, fanrpm, 3569 RPM  and fix the s/drive\s// from the data, not the type
 hw.sensors.14:low=3000:warn.low=3250  ----------------------------
   revision 1.20
 # hw.sensors.15=esm0, Fan 3, OK, fanrpm, 3563 RPM  date: 2006/12/05 00:17:47;  author: andrew;  state: Exp;  lines: +35 -26
 hw.sensors.15:low=3000:warn.low=3250  Match sensors differently depending on OS Version from the Config module.
   
 # hw.sensors.16=esm0, Backplane, raw, 0  Also support checks on the other sensor types and document that.
 # hw.sensors.17=esm0, Backplane Top, OK, temp, 14.50 degC / 58.10 degF  
 hw.sensors.17:high=35C:warn.high=25C  and refactor the way I return a $sensor-&gt;{'status'} from ~10 lines to 1.
   ----------------------------
 # hw.sensors.18=esm0, Backplane Bottom, OK, temp, 22.00 degC / 71.60 degF  revision 1.19
 hw.sensors.18:high=40C:warn.high=30C  date: 2006/12/04 23:33:53;  author: andrew;  state: Exp;  lines: +8 -3
   add a regex for the 'percent' type of sensor
 # hw.sensors.19=esm0, Backplane +5V, OK, volts_dc, 4.97 V  ----------------------------
 hw.sensors.19:high=5.1V:warn.high=5.05V:low=4.90V:warn.low=4.85V  revision 1.18
   date: 2006/12/02 02:15:17;  author: andrew;  state: Exp;  lines: +74 -9
 # hw.sensors.20=esm0, Backplane SCSI A Connected, indicator, On  fix it for the output from OpenBSD 4.0
 hw.sensors.20:crit=On:warn=On  ----------------------------
   revision 1.17
 # hw.sensors.21=esm0, Backplane SCSI A External, OK, volts_dc, 4.70 V  date: 2006/10/25 23:30:23;  author: andrew;  state: Exp;  lines: +4 -7
 hw.sensors.21:high=5.1V:warn.high=5.05V:low=4.60V:warn.low=4.65V  get the docs up to match the new version
   ----------------------------
 # hw.sensors.22=esm0, Backplane SCSI B Connected, indicator, Off  revision 1.16
 hw.sensors.22:crit=Off:warn=Off  date: 2006/10/25 18:36:46;  author: andrew;  state: Exp;  lines: +4 -4
   Stuff in CVS should output nagios format
 # hw.sensors.23=esm0, Drive 0, drive, online  ----------------------------
 hw.sensors.23:crit=online,empty:warn=online  revision 1.15
   date: 2006/10/25 18:35:59;  author: andrew;  state: Exp;  lines: +73 -46
 # hw.sensors.24=esm0, Drive 1, drive, online  add support for the status as reported by the sensors.  it is teh r0x0r!
 hw.sensors.24:crit=online,empty:warn=online  ----------------------------
   revision 1.14
 # hw.sensors.25=esm0, Drive 2, drive, empty  date: 2006/05/04 01:30:29;  author: andrew;  state: Exp;  lines: +6 -4
 hw.sensors.25:crit=online,empty:warn=online,empty  I thought I checked this in already
   ----------------------------
 # hw.sensors.26=esm0, Drive 3, drive, empty  revision 1.13
 hw.sensors.26:crit=online,empty:warn=online,empty  date: 2006/05/03 22:16:42;  author: andrew;  state: Exp;  lines: +7 -6
   Some more fixing of the help
 # hw.sensors.27=esm0, Backplane Control 2, raw, 17  ----------------------------
 # hw.sensors.28=esm0, Backplane +3.3V, OK, volts_dc, 3.28 V  revision 1.12
 hw.sensors.28:high=3.5V:warn.high=3.4V:low=3.2V:warn.low=3.25V  date: 2006/05/03 21:54:43;  author: andrew;  state: Exp;  lines: +51 -30
   Get the help output cleaned up.  Still not 100% what I want, but so far so good.
 # hw.sensors.29=safte0, temp0, OK, temp, 14.44 degC / 58.00 degF  ----------------------------
 hw.sensors.29:high=35C:warn.high=25C  revision 1.11
   date: 2006/05/03 20:01:09;  author: holligan;  state: Exp;  lines: +4 -4
 # hw.sensors.30=safte0, temp1, OK, temp, 22.22 degC / 72.00 degF  updated and clarified help
 hw.sensors.30:high=40C:warn.high=30C  ----------------------------
         </pre>  revision 1.10
         <h3>Example output from sysctl hw.sensors from that box</h3>  date: 2006/05/03 03:31:22;  author: andrew;  state: Exp;  lines: +27 -42
         <pre>  A bunch of cleanup and some kewl refactoring into loops.
 hw.sensors.0=esm0, Motherboard, raw, 0  
 hw.sensors.1=esm0, CPU 1, OK, temp, 30.00 degC / 86.00 degF  Still need to find a way to refactor the checks that are so similar!
 hw.sensors.2=esm0, CPU 2, OK, temp, 31.00 degC / 87.80 degF  ----------------------------
 hw.sensors.3=esm0, Mainboard, OK, temp, 19.50 degC / 67.10 degF  revision 1.9
 hw.sensors.4=esm0, CPU 1 Core, OK, volts_dc, 1.69 V  date: 2006/05/03 02:26:47;  author: andrew;  state: Exp;  lines: +8 -8
 hw.sensors.5=esm0, CPU 2 Core, OK, volts_dc, 1.70 V  It now doesn't do nonexistent checks (for some stuff anyway)
 hw.sensors.6=esm0, Motherboard +5V, OK, volts_dc, 4.95 V  Also changed the &lt;br /&gt; to &lt;br&gt;.  Not valid XHTML whatever, but it does get stripped before getting sent to my pager.
 hw.sensors.7=esm0, Motherboard +12V, OK, volts_dc, 11.93 V  ----------------------------
 hw.sensors.8=esm0, Motherboard +3.3V, OK, volts_dc, 3.27 V  revision 1.8
 hw.sensors.9=esm0, Motherboard +2.5V, OK, volts_dc, 2.48 V  date: 2006/05/02 21:23:29;  author: andrew;  state: Exp;  lines: +6 -16
 hw.sensors.10=esm0, Motherboard GTL Term, OK, volts_dc, 1.49 V  Better looking output for the web page.
 hw.sensors.11=esm0, Motherboard Battery, OK, volts_dc, 2.94 V  ----------------------------
 hw.sensors.12=esm0, Chassis Intrusion, indicator, Off  revision 1.7
 hw.sensors.13=esm0, Fan 1, OK, fanrpm, 3514 RPM  date: 2006/05/02 20:03:53;  author: andrew;  state: Exp;  lines: +5 -5
 hw.sensors.14=esm0, Fan 2, OK, fanrpm, 3582 RPM  oops, that's an array ref!
 hw.sensors.15=esm0, Fan 3, OK, fanrpm, 3570 RPM  ----------------------------
 hw.sensors.16=esm0, Backplane, raw, 0  revision 1.6
 hw.sensors.17=esm0, Backplane Top, OK, temp, 14.50 degC / 58.10 degF  date: 2006/05/02 19:59:47;  author: andrew;  state: Exp;  lines: +7 -5
 hw.sensors.18=esm0, Backplane Bottom, OK, temp, 22.50 degC / 72.50 degF  Better output for the OK checks
 hw.sensors.19=esm0, Backplane +5V, OK, volts_dc, 4.97 V  ----------------------------
 hw.sensors.20=esm0, Backplane SCSI A Connected, indicator, On  revision 1.5
 hw.sensors.21=esm0, Backplane SCSI A External, OK, volts_dc, 4.70 V  date: 2006/05/02 19:49:29;  author: andrew;  state: Exp;  lines: +19 -12
 hw.sensors.22=esm0, Backplane SCSI B Connected, indicator, Off  Only show details for things other than OK, cuZ we are limited in the amount of data we can return :-(
 hw.sensors.23=esm0, Drive 0, drive, online  ----------------------------
 hw.sensors.24=esm0, Drive 1, drive, online  revision 1.4
 hw.sensors.25=esm0, Drive 2, drive, empty  date: 2006/05/02 15:54:42;  author: andrew;  state: Exp;  lines: +44 -21
 hw.sensors.26=esm0, Drive 3, drive, empty  Some cleanup, as well as making it output a single line like nagios supposedly likes.
 hw.sensors.27=esm0, Backplane Control 2, raw, 17  ----------------------------
 hw.sensors.28=esm0, Backplane +3.3V, OK, volts_dc, 3.28 V  revision 1.3
 hw.sensors.29=safte0, temp0, OK, temp, 15.00 degC / 59.00 degF  date: 2006/05/02 01:39:23;  author: andrew;  state: Exp;  lines: +3 -3
 hw.sensors.30=safte0, temp1, OK, temp, 22.78 degC / 73.00 degF  fix the help getopts.
         </pre>  ----------------------------
         <p>Andrew Fresh &lt;<a href='mailto:andrew@mad-techies.org'>andrew@mad-techies.org</a>&gt;</p>  revision 1.2
         <p><small>$RedRiver: index.html,v 1.2 2006/05/04 01:31:29 andrew Exp $</small></p>  date: 2006/05/02 01:29:33;  author: andrew;  state: Exp;  lines: +427 -11
     </body>  Adding the sensors from one of the routers, cuZ there were a lot and I can use it for testing.
 </html>  
   Also, now the check_hw_sensors now seems to be OK.  I need to put it on a few machines and set up the checks now.  If it works for the rest of the week, I can clean it up and mebbe put it on teh interweb and post to undeadly.
   ----------------------------
   revision 1.1
   date: 2006/05/01 18:11:23;  author: andrew;  state: Exp;
   add this so I can check it out on a box for testing
   =============================================================================
                   </pre>
           <p>Andrew Fresh &lt;<a href='mailto:andrew@mad-techies.org'>andrew@mad-techies.org</a>&gt;</p>
           <p><small>$RedRiver: index.html,v 1.5 2006/12/05 16:44:14 andrew Exp $</small></p>
       </body>
   </html>
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.6

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>