Pasted it in.. looks like it cleared with no errors. Now what? I don't see
a new script or any indication of anything new in ip>pool or ip>dhcp-server.

-Ty

On Wed, Sep 19, 2012 at 3:37 PM, Josh Luthman
<j...@imaginenetworksllc.com>wrote:

> Yep.  Put it in a terminal.  Sometimes browsers turn " into some weird
> character...
> On Sep 19, 2012 3:56 PM, "Ty Featherling" <tyfeatherl...@gmail.com> wrote:
>
> > Ok, hold my hand here.. Just copy that text and paste it into a terminal
> > windows, yes? Or do I create a script and paste it there? Be gentle, it's
> > my first time.
> >
> > -Ty
> >
> > On Wed, Sep 19, 2012 at 1:45 PM, Kerry <kpenl...@bigtube.net> wrote:
> >
> > > I use this script, schedule it to run however often you'd like. It
> throws
> > > a script error when it's above the thresholds in the script.
> > > I have system logging set to log script errors to my syslog box which
> > > email-alerts us.
> > > /system logging
> > > add action=remote disabled=no prefix=DCHP-Server topics=script,error
> > >
> > >
> > >
> > > # List stats for IP -> Pool
> > > #
> > > # criticalthreshold = output pool display in red if pool used is above
> > > this %
> > > # warnthreshold = output pool display in gold if pool used is above
> this
> > %
> > >
> > > :local criticalthreshold 90
> > > :local warnthreshold 70
> > >
> > > # Internal processing below...
> > > # ------------------------------**----
> > > /ip pool {
> > >    :local poolname
> > >    :local pooladdresses
> > >    :local poolused
> > >    :local poolpercent
> > >    :local minaddress
> > >    :local maxaddress
> > >    :local findindex
> > >    :local tmpint
> > >    :local maxindex
> > >    :local line
> > >
> > >    :put ("IP Pool Statistics")
> > >    :put ("------------------")
> > >
> > > # Iterate through IP Pools
> > >    :foreach p in=[find] do={
> > >
> > >       :set poolname [get $p name]
> > >       :set pooladdresses 0
> > >       :set poolused 0
> > >       :set line ""
> > >
> > >       :set line ("     " . $poolname)
> > >
> > > #   Iterate through current pool's IP ranges
> > >       :foreach r in=[:toarray [get $p range]] do={
> > >
> > > #      Get min and max addresses
> > >          :set findindex [:find [:tostr $r] "-"]
> > >          :if ([:len $findindex] > 0) do={
> > >             :set minaddress [:pick [:tostr $r] 0 $findindex]
> > >             :set maxaddress [:pick [:tostr $r] ($findindex + 1) [:len
> > > [:tostr $r]]]
> > >          } else={
> > >             :set minaddress [:tostr $r]
> > >             :set maxaddress [:tostr $r]
> > >          }
> > >
> > > #       Convert to array of octets (replace '.' with ',')
> > >          :for x from=0 to=([:len [:tostr $minaddress]] - 1) do={
> > >             :if ([:pick [:tostr $minaddress] $x ($x + 1)] = ".") do={
> > >                :set minaddress ([:pick [:tostr $minaddress] 0 $x] . ","
> > . \
> > >                                        [:pick [:tostr $minaddress] ($x
> +
> > > 1) [:len [:tostr $minaddress]]]) }
> > >          }
> > >          :for x from=0 to=([:len [:tostr $maxaddress]] - 1) do={
> > >             :if ([:pick [:tostr $maxaddress] $x ($x + 1)] = ".") do={
> > >                :set maxaddress ([:pick [:tostr $maxaddress] 0 $x] . ","
> > . \
> > >                                        [:pick [:tostr $maxaddress] ($x
> +
> > > 1) [:len [:tostr $maxaddress]]]) }
> > >          }
> > >
> > > #      Calculate available addresses for current range
> > >          :if ([:len [:toarray $minaddress]] = [:len [:toarray
> > > $maxaddress]]) do={
> > >             :set maxindex ([:len [:toarray $minaddress]] - 1)
> > >             :for x from=$maxindex to=0 step=-1 do={
> > > #             Calculate 256^($maxindex - $x)
> > >                :set tmpint 1
> > >                :if (($maxindex - $x) > 0) do={
> > >                   :for y from=1 to=($maxindex - $x) do={ :set tmpint
> (256
> > > * $tmpint) }
> > >                }
> > >                :set tmpint ($tmpint * ([:tonum [:pick [:toarray
> > > $maxaddress] $x]] - \
> > >                                                     [:tonum [:pick
> > > [:toarray $minaddress] $x]]) )
> > >                :set pooladdresses ($pooladdresses + $tmpint)
> > > #         for x
> > >             }
> > >
> > > #      if len array $minaddress = $maxaddress
> > >          }
> > >
> > > #      Add current range to total pool's available addresses
> > >          :set pooladdresses ($pooladdresses + 1)
> > >
> > > #   foreach r
> > >       }
> > >
> > > #   Now, we have the available address for all ranges in this pool
> > > #   Get the number of used addresses for this pool
> > >       :set poolused [:len [used find pool=[:tostr $poolname]]]
> > >       :set poolpercent (($poolused * 100) / $pooladdresses)
> > >
> > > #   Output information
> > >       :set line ([:tostr $line] . "  [" . $poolused . "/" .
> > $pooladdresses
> > > . "]")
> > >       :set line ([:tostr $line] . "  " . $poolpercent . " % used")
> > >
> > > #   Set colored display for used thresholds
> > >       :if ( [:tonum $poolpercent] > $criticalthreshold ) do={
> > >          :log error ("IP Pool " . $poolname . " is " . $poolpercent .
> "%
> > > full" . " [" . $poolused . "/" . $pooladdresses . "]")
> > >          :put ([:terminal style varname] . $line)
> > >       } else={
> > >          :if ( [:tonum $poolpercent] > $warnthreshold ) do={
> > >             :log warning ("IP Pool " . $poolname . " is " .
> $poolpercent
> > .
> > > "% full")
> > >             :put ([:terminal style syntax-meta] . $line)
> > >          } else={
> > >             :put ([:terminal style none] . $line)
> > >          }
> > >       }
> > >
> > > # foreach p
> > >    }
> > > # /ip pool
> > >
> > > }
> > > On 9/19/2012 11:33 AM, Ty Featherling wrote:
> > >
> > >> I have a routerboard acting as my primary DHCP server. I am also
> adding
> > >> routers to this large bridged network a tower at a time and each new
> > >> router
> > >> holds DHCP pools for their segment as well.
> > >>
> > >> How can I keep track of how many addresses are being utilized per
> pool?
> > I
> > >> know that "ip dhcp-server lease print" will show how many active
> leases
> > >> there are but I want to see the number of unused addresses in a pool.
> I
> > >> have to do math in my head each time to compare the number of
> addresses
> > in
> > >> the pool to the number of active leases to get that number.
> > >>
> > >> Has anyone found or created a more elegant solution to this?
> > >>
> > >> -Ty
> > >> -------------- next part --------------
> > >> An HTML attachment was scrubbed...
> > >> URL: <http://www.butchevans.com/**pipermail/mikrotik/**
> > >> attachments/20120919/54ec5d39/**attachment.html<
> >
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/54ec5d39/attachment.html
> > >
> > >> >
> > >> ______________________________**_________________
> > >> Mikrotik mailing list
> > >> Mikrotik@mail.butchevans.com
> > >> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> > http://www.butchevans.com/mailman/listinfo/mikrotik>
> > >>
> > >> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > >> RouterOS
> > >>
> > >>
> > >>
> > >
> > > ______________________________**_________________
> > > Mikrotik mailing list
> > > Mikrotik@mail.butchevans.com
> > > http://www.butchevans.com/**mailman/listinfo/mikrotik<
> > http://www.butchevans.com/mailman/listinfo/mikrotik>
> > >
> > > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > > RouterOS
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/abf0ef50/attachment.html
> > >
> > _______________________________________________
> > Mikrotik mailing list
> > Mikrotik@mail.butchevans.com
> > http://www.butchevans.com/mailman/listinfo/mikrotik
> >
> > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > RouterOS
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/45f5f7e4/attachment.html
> >
> _______________________________________________
> Mikrotik mailing list
> Mikrotik@mail.butchevans.com
> http://www.butchevans.com/mailman/listinfo/mikrotik
>
> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> RouterOS
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/d4411d56/attachment.html>
_______________________________________________
Mikrotik mailing list
Mikrotik@mail.butchevans.com
http://www.butchevans.com/mailman/listinfo/mikrotik

Visit http://blog.butchevans.com/ for tutorials related to Mikrotik RouterOS

Reply via email to