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