Aveces es necesario pasar la notación de tiempo de Mikrotik a segundos, por ejemplo el Uptime es entregado en este formato "2w5d18:22:18", el siguiente es para llevar ese string a un segundos.
Tested on -> 4.17, 5.26, 6.1, 6.9
Probado en -> 4.17, 5.26, 6.1, 6.9
ros code
:global UptimeSeconds 0; :local uptime [/system resource get uptime]; :local weekend 0; :local dayend 0; :if ([:find $uptime "w" -1]!="") do={ :set weekend [:find $uptime "w" -1]; }; :if ([:find $uptime "d" -1]!="") do={ :set dayend [:find $uptime "d" -1]; }; :local weeks [:pick $uptime 0 $weekend]; :local days [:pick $uptime ($weekend+1) $dayend]; :local time [:pick $uptime ([:len $uptime]-8) [:len $uptime]]; :local hours [:pick $time 0 2]; :local minutes [:pick $time 3 5]; :local seconds [:pick $time 6 8]; :set UptimeSeconds [(((((($weeks*86400*7)+($days*86400))+($hours*3600))+($minutes*60))+$seconds))];In my case I need that value in some scripts, then I run it through a scheduler every 5 seconds and the uptime in seconds it is available in a global variable for other scripts.
En mi caso necesito ese valor en algunos Scripts, entonces, mediante un scheduler lo ejecuto cada 5 segundos y el uptime en segundos esta disponible en una variable global para otros scripts.