Yes. Link is at the bottom of his email. Josh Luthman Office: 937-552-2340 Direct: 937-552-2343 1100 Wayne St Suite 1337 Troy, OH 45373
On Thu, Sep 20, 2012 at 12:25 PM, Ty Featherling <[email protected]>wrote: > Thanks but I don't see attachments. Does Butch scrub attachments on this > list? Probably. > > -Ty > > On Thu, Sep 20, 2012 at 11:16 AM, Kerry <[email protected]> wrote: > > > Attached are the relevant scripts, I just open the text file in crimson > > editor, copy all the text and paste it into a terminal window. > > While you're still in the window, change to > > /system script > > and > > run IPPoolInfo > > or whatever you have the name set to if you changed the name of the > > script. It will output in the terminal window. > > Depending on how many pools you have, the output should resemble below: > > > > [admin@Attica] /system script> run IPPoolInfo > > IP Pool Statistics > > ------------------ > > Attica [0/245] 0 % used > > Imlay [0/245] 0 % used > > Imlay-Public [116/125] 92 % used > > Attica-Public [99/122] 81 % used > > [admin@Attica]/system script> > > > > > > > > > > > > > > > > > > > > On 9/20/2012 9:03 AM, Ty Featherling wrote: > > > >> Please do. It doesn't seem the script is doing anything at all right > now, > >> even when I change the thresholds to low numbers. > >> > >> -Ty > >> > >> On Wed, Sep 19, 2012 at 6:56 PM, Leroy Koglin <[email protected] > >* > >> *wrote: > >> > >> Correct. Kerry has our routers setup to run the script every 4 hours. > If > >>> the > >>> pool usage us above the warning value defined in the script an error is > >>> logged. Remote syslog is enabled and he has rules built into the syslog > >>> server to alert us when the dhcp pool error is detected. > >>> As a minimum, if you pool usage is above the value you have set it the > >>> script on the line :local criticalthreshold 90 you should get an error > in > >>> the log. The script is set to kick an error if the pool is 90% > utilized. > >>> Change the 90 to a lower value to test with. > >>> > >>> The copy/paste may have messed the script up if that is not working for > >>> you. > >>> Let me know and I'll send you the script as an attachment. > >>> > >>> Leroy > >>> > >>> > >>> > >>> > >>> -----Original Message----- > >>> From: mikrotik-bounces@mail.**butchevans.com< > [email protected]> > >>> [mailto:mikrotik-bounces@mail.**butchevans.com< > [email protected]>] > >>> On Behalf Of Ty Featherling > >>> Sent: Wednesday, September 19, 2012 5:53 PM > >>> To: Mikrotik discussions > >>> Subject: Re: [Mikrotik] Managing DHCP Pools > >>> > >>> Yeah that didn't do it. It just spits out a warning in the log, right? > >>> > >>> -Ty > >>> > >>> On Wed, Sep 19, 2012 at 4:39 PM, Josh Luthman > >>> <[email protected]>**wrote: > >>> > >>> Pretty sure you'd need 70% or 90% capacity filled for it to spit out > an > >>>> error. Make the warning value something like 1 or 5 and run it to > test. > >>>> > >>>> Josh Luthman > >>>> Office: 937-552-2340 > >>>> Direct: 937-552-2343 > >>>> 1100 Wayne St > >>>> Suite 1337 > >>>> Troy, OH 45373 > >>>> > >>>> > >>>> On Wed, Sep 19, 2012 at 5:16 PM, Ty Featherling < > >>>> [email protected] > >>>> > >>>>> wrote: > >>>>> Ok new script added. Dumped the code in the source field. Left all > >>>>> permissions checked and gave it a name. It added it in the list but > >>>>> > >>>> licking > >>>> > >>>>> "Run Script" does nothing. Nothing in the log nor any indication is > >>>>> > >>>> started > >>>> > >>>>> anything. > >>>>> > >>>>> -Ty > >>>>> > >>>>> On Wed, Sep 19, 2012 at 4:04 PM, Josh Luthman > >>>>> <[email protected]>**wrote: > >>>>> > >>>>> I thought there was code above the actual script, sorry! > >>>>>> > >>>>>> You should use the GUI to make a new script. There are no proper > >>>>>> > >>>>> breaks > >>> > >>>> in > >>>>> > >>>>>> the email to make it easy in the terminal. > >>>>>> > >>>>>> Josh Luthman > >>>>>> Office: 937-552-2340 > >>>>>> Direct: 937-552-2343 > >>>>>> 1100 Wayne St > >>>>>> Suite 1337 > >>>>>> Troy, OH 45373 > >>>>>> > >>>>>> > >>>>>> On Wed, Sep 19, 2012 at 5:00 PM, Ty Featherling < > >>>>>> > >>>>> [email protected] > >>>> > >>>>> wrote: > >>>>>>> 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 > >>>>>>> <[email protected]>**wrote: > >>>>>>> > >>>>>>> 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/**< > http://www.butchevans.com/**pipermail/mikrotik/**> > >>>>>>>>>>> attachments/20120919/54ec5d39/****attachment.html< > >>>>>>>>>>> > >>>>>>>>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/54ec5d39/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/54ec5d39/a > > > >>> ttachment.html > >>> > >>>> ______________________________****_________________ > >>>>>>>>>>> Mikrotik mailing list > >>>>>>>>>>> [email protected] > >>>>>>>>>>> http://www.butchevans.com/****mailman/listinfo/mikrotik< > http://www.butchevans.com/**mailman/listinfo/mikrotik> > >>>>>>>>>>> < > >>>>>>>>>>> > >>>>>>>>>> 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> > >>>>>>>>>> < > >>>>>>>>>> > >>>>>>>>> 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/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/abf0ef50/a > > > >>> ttachment.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 > >>>>>>>>> > >>>>>>>>> -------------- next part -------------- > >>>>>>>> An HTML attachment was scrubbed... > >>>>>>>> URL: < > >>>>>>>> > >>>>>>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/45f5f7e4/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/45f5f7e4/a > > > >>> ttachment.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 > >>>>>>>> > >>>>>>>> -------------- next part -------------- > >>>>>>> An HTML attachment was scrubbed... > >>>>>>> URL: < > >>>>>>> > >>>>>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/d4411d56/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/d4411d56/a > > > >>> ttachment.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 > >>>>>>> > >>>>>>> -------------- next part -------------- > >>>>>> An HTML attachment was scrubbed... > >>>>>> URL: < > >>>>>> > >>>>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/efe00c84/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/efe00c84/a > > > >>> ttachment.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 > >>>>>> > >>>>>> -------------- next part -------------- > >>>>> An HTML attachment was scrubbed... > >>>>> URL: < > >>>>> > >>>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/80dc40f5/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/80dc40f5/a > > > >>> ttachment.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 > >>>>> > >>>>> -------------- next part -------------- > >>>> An HTML attachment was scrubbed... > >>>> URL: < > >>>> > >>>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/3f7ad5cd/**a< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/3f7ad5cd/a > > > >>> ttachment.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 > >>>> > >>>> -------------- next part -------------- > >>> An HTML attachment was scrubbed... > >>> URL: > >>> < > >>> http://www.butchevans.com/**pipermail/mikrotik/** > >>> attachments/20120919/08b665f3/< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/08b665f3/ > > > >>> 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/20120920/f520cb00/**attachment.html< > http://www.butchevans.com/pipermail/mikrotik/attachments/20120920/f520cb00/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 > >> > >> > >> > > -------------- next part -------------- > > /system logging > > add action=remote disabled=no prefix=ChangeMe topics=script,error > > /system logging action > > set remote bsd-syslog=no name=remote remote=xxx.xxx.xxx.xxx > > remote-port=514 \ > > src-address=0.0.0.0 syslog-facility=daemon syslog-severity=auto > target=\ > > remote > > /system script > > add name=IPPoolInfo policy=\ > > > ftp,reboot,read,write,policy,**test,winbox,password,sniff,**sensitive,api > > \ > > source="# List stats for IP -> Pool\r\ > > \n#\r\ > > \n# criticalthreshold = output pool display in red if pool used is > > above t\ > > his %\r\ > > \n# warnthreshold = output pool display in gold if pool used is above > > this\ > > \_%\r\ > > \n\r\ > > \n:local criticalthreshold 90\r\ > > \n:local warnthreshold 70\r\ > > \n\r\ > > \n# Internal processing below...\r\ > > \n# ------------------------------**----\r\ > > \n/ip pool {\r\ > > \n :local poolname\r\ > > \n :local pooladdresses\r\ > > \n :local poolused\r\ > > \n :local poolpercent\r\ > > \n :local minaddress\r\ > > \n :local maxaddress\r\ > > \n :local findindex\r\ > > \n :local tmpint\r\ > > \n :local maxindex\r\ > > \n :local line\r\ > > \n\r\ > > \n :put (\"IP Pool Statistics\")\r\ > > \n :put (\"------------------\")\r\ > > \n\r\ > > \n# Iterate through IP Pools\r\ > > \n :foreach p in=[find] do={\r\ > > \n\r\ > > \n :set poolname [get \$p name]\r\ > > \n :set pooladdresses 0\r\ > > \n :set poolused 0\r\ > > \n :set line \"\"\r\ > > \n\r\ > > \n :set line (\" \" . \$poolname)\r\ > > \n\r\ > > \n# Iterate through current pool's IP ranges\r\ > > \n :foreach r in=[:toarray [get \$p range]] do={\r\ > > \n\r\ > > \n# Get min and max addresses\r\ > > \n :set findindex [:find [:tostr \$r] \"-\"]\r\ > > \n :if ([:len \$findindex] > 0) do={\r\ > > \n :set minaddress [:pick [:tostr \$r] 0 \$findindex]\r\ > > \n :set maxaddress [:pick [:tostr \$r] (\$findindex + 1) > > [:len \ > > [:tostr \$r]]]\r\ > > \n } else={\r\ > > \n :set minaddress [:tostr \$r]\r\ > > \n :set maxaddress [:tostr \$r]\r\ > > \n }\r\ > > \n\r\ > > \n# Convert to array of octets (replace '.' with ',')\r\ > > \n :for x from=0 to=([:len [:tostr \$minaddress]] - 1) do={\r\ > > \n :if ([:pick [:tostr \$minaddress] \$x (\$x + 1)] = > \".\") > > do\ > > ={\r\ > > \n :set minaddress ([:pick [:tostr \$minaddress] 0 \$x] > . > > \"\ > > ,\" . \\\r\ > > \n [:pick [:tostr \$minaddress] > > (\$x\ > > \_+ 1) [:len [:tostr \$minaddress]]]) }\r\ > > \n }\r\ > > \n :for x from=0 to=([:len [:tostr \$maxaddress]] - 1) do={\r\ > > \n :if ([:pick [:tostr \$maxaddress] \$x (\$x + 1)] = > \".\") > > do\ > > ={\r\ > > \n :set maxaddress ([:pick [:tostr \$maxaddress] 0 \$x] > . > > \"\ > > ,\" . \\\r\ > > \n [:pick [:tostr \$maxaddress] > > (\$x\ > > \_+ 1) [:len [:tostr \$maxaddress]]]) }\r\ > > \n }\r\ > > \n\r\ > > \n# Calculate available addresses for current range\r\ > > \n :if ([:len [:toarray \$minaddress]] = [:len [:toarray > > \$maxaddr\ > > ess]]) do={\r\ > > \n :set maxindex ([:len [:toarray \$minaddress]] - 1)\r\ > > \n :for x from=\$maxindex to=0 step=-1 do={\r\ > > \n# Calculate 256^(\$maxindex - \$x)\r\ > > \n :set tmpint 1\r\ > > \n :if ((\$maxindex - \$x) > 0) do={\r\ > > \n :for y from=1 to=(\$maxindex - \$x) do={ :set > > tmpint (\ > > 256 * \$tmpint) }\r\ > > \n }\r\ > > \n :set tmpint (\$tmpint * ([:tonum [:pick [:toarray > > \$maxad\ > > dress] \$x]] - \\\r\ > > \n [:tonum [:pick > > [:toa\ > > rray \$minaddress] \$x]]) )\r\ > > \n :set pooladdresses (\$pooladdresses + \$tmpint)\r\ > > \n# for x\r\ > > \n }\r\ > > \n\r\ > > \n# if len array \$minaddress = \$maxaddress\r\ > > \n }\r\ > > \n\r\ > > \n# Add current range to total pool's available addresses\r\ > > \n :set pooladdresses (\$pooladdresses + 1)\r\ > > \n\r\ > > \n# foreach r\r\ > > \n }\r\ > > \n\r\ > > \n# Now, we have the available address for all ranges in this > pool\r\ > > \n# Get the number of used addresses for this pool\r\ > > \n :set poolused [:len [used find pool=[:tostr \$poolname]]]\r\ > > \n :set poolpercent ((\$poolused * 100) / \$pooladdresses)\r\ > > \n\r\ > > \n# Output information\r\ > > \n :set line ([:tostr \$line] . \" [\" . \$poolused . \"/\" . > > \$pool\ > > addresses . \"]\")\r\ > > \n :set line ([:tostr \$line] . \" \" . \$poolpercent . \" % > > used\")\ > > \r\ > > \n\r\ > > \n# Set colored display for used thresholds\r\ > > \n :if ( [:tonum \$poolpercent] > \$criticalthreshold ) do={\r\ > > \n :log error (\"IP Pool \" . \$poolname . \" is \" . > > \$poolpercen\ > > t . \"% full\" . \" [\" . \$poolused . \"/\" . \$pooladdresses . > > \"]\")\r\ > > \n :put ([:terminal style varname] . \$line)\r\ > > \n } else={\r\ > > \n :if ( [:tonum \$poolpercent] > \$warnthreshold ) do={\r\ > > \n :log warning (\"IP Pool \" . \$poolname . \" is \" . > > \$poolp\ > > ercent . \"% full\")\r\ > > \n :put ([:terminal style syntax-meta] . \$line)\r\ > > \n } else={\r\ > > \n :put ([:terminal style none] . \$line)\r\ > > \n }\r\ > > \n }\r\ > > \n\r\ > > \n# foreach p\r\ > > \n }\r\ > > \n# /ip pool\r\ > > \n}\r\ > > \n" > > > > ______________________________**_________________ > > 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/20120920/c361077b/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/20120920/6290e638/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

