Delay running a script after restart – MikroTik RouterOS
Posted by jpluimers on 2017/10/24
There is a special startup value for “Start Time” you can enter which makes it runs once 3 seconds after reboot.
If by then your router isn’t fully “up” yet (i.e. waiting for PPPoE or DHCP network settings), then inside the script you can perform a delay global command as shown in the code fragment from the below forum post.
Don’t you love how people still tend to both repeat themselves and abbreviate stuff even though they have code completion at their disposal?:
{:delay 10};
/log print file=([/system identity get name] . "Log-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6]); \
/tool e-mail send to="xxx@xxx.com" subject=([/system identity get name] . " Log " . \
[/system clock get date]) file=([/system identity get name] . "Log-" . [:pick [/system clock get date] 7 11] . \
[:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".txt"); :delay 10; \
/file rem [/file find name=([/system identity get name] . "Log-" . [:pick [/system clock get date] 7 11] . \
[:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".txt")]; \
:log info ("System Log emailed at " . [/sys cl get time] . " " . [/sys cl get date])
Much easier to read:
{:delay 10};
{
:local currentDate [/system clock get date];
:local fileName ([/system identity get name] . "Log-" . [:pick $currentDate 7 11] . [:pick $currentDate 0 3] . [:pick $currentDate 4 6]);
/log print file=($fileName);
/tool e-mail send to="xxx@xxx.com" subject=([/system identity get name] . " Log " . $currentDate) file=($fileName . ".txt"); :delay 10;
/file remove [/file find name=($fileName . ".txt")];
:log info ("System Log emailed at " . [/system clock get time] . " " . $currentDate)
}
–jeroen
via: [WayBack] How to run script auto after restart – MikroTik RouterOS







Leave a comment