Yep.  Put it in a terminal.  Sometimes browsers turn " into some weird
character...
On Sep 19, 2012 3:56 PM, "Ty Featherling" <[email protected]> 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 <[email protected]> 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
> >> [email protected]
> >> 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
> > [email protected]
> > 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
> [email protected]
> 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
[email protected]
http://www.butchevans.com/mailman/listinfo/mikrotik

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

Reply via email to