automatic clear of status busy in dhcp server

hello,

i use mikrotik 3.x for dhcp server with static leases, sometimes i get status busy on some static entries, i tryed this script to check and repair it, but it does not work for me

/ip dhcp-server lease;
:foreach i in=[/ip dhcp-server lease find status=busy]\ 
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease disable $i;
/ip dhcp-server lease enable $i;
}

script do not find any busy status in static lease list.

thanks for any idea.

BR
krtko

Hi!
Revome 1ª line “/ip dhcp-server lease;” .

:foreach i in=[/ip dhcp-server lease find status=busy]
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease disable $i;
/ip dhcp-server lease enable $i;
}

is this right??

i have tried it but it wont work…

tnx
bye

Try to use quotation marks “busy”

:foreach i in=[/ip dhcp-server lease find status=“busy”]
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease disable $i;
/ip dhcp-server lease enable $i;
}

or simply like I do

:foreach i in=[/ip dhcp-server lease find status=“busy”]
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease check-status $i;
}

tnx for the answer…now the script is working but i will first test it when some lesses are busy..

you’r script is not god for me…because i don’t have someone to look everyday the log-file…

tnx
bye

I had the same issue.

At my network problem solved… One of Mikrotik’s had PROXY-ARP on ether2 and when host trying to get IP from DHCP (static leases in my case) he thinks that this specific IP is already used.

DISABLE PROXY-ARP on every MT.

:foreach i in=[/ip dhcp-server lease find status="busy"]\
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease check-status $i;
}

Why it does not work on my MT3.30?

there are slight syntax changes between version 3 and 4.

best shot is, in console open script editor and paste script there, use F5 to refresh mark-up of text. After error there should not be any mark-up.

Thanks !!! Script works perfect!

:foreach i in=[/ip dhcp-server lease find status="busy"]\
do={
:log error ("Busy status detected: " . [/ip dhcp-server lease get $i address]);
/ip dhcp-server lease check-status $i;
/ip dhcp-server lease disable $i;
/ip dhcp-server lease enable $i;
}

I added it to a scheduler once per hour. And it works without my attention :slight_smile: