Yeah still nothing. Send it to my address directly. I bet that works. -Ty
On Thu, Sep 20, 2012 at 11:24 AM, Kerry <[email protected]> wrote: > > On 9/20/2012 12:16 PM, Kerry 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 -------------- > /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/971d469c/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

