Community discussions

MikroTik App
 
ko00000000001
just joined
Topic Author
Posts: 9
Joined: Thu Feb 29, 2024 9:12 am

RouterOS get uptime days

Tue Mar 19, 2024 7:15 am

Hello,

RouterOS get uptime days code is:
put "Uptime: $[:if ([:len [:find [/system resource get uptime] "w"]] != 0) do={([:pick [/system resource get uptime] 0 ([:find [/system resource get uptime] "w"])] *7 + [:pick [/system resource get uptime] ([:find [/system resource get
 uptime] "d"] -1) ([:find [/system resource get uptime] "d"])])} else={[:pick [/system resource get uptime] ([:find [/system resource get uptime] "d"]-1) ([:find [/system resource get uptime] "d"])]}] days"

The output result is:
Uptime: days;Uptime: 18 days

I have a problem.
The output has more "Uptime: days;"
I don't want the output to have the "Uptime: days;" symbol.

Or is there a better way for people to do this?
 
User avatar
loloski
Member
Member
Posts: 351
Joined: Mon Mar 15, 2021 9:10 pm

Re: RouterOS get uptime days

Tue Mar 19, 2024 8:19 am

:put [/system/resource/get uptime
11w2d15:59:17
]
 
ko00000000001
just joined
Topic Author
Posts: 9
Joined: Thu Feb 29, 2024 9:12 am

Re: RouterOS get uptime days

Tue Mar 19, 2024 9:26 am

:put [/system/resource/get uptime]
11w2d15:59:17

Hello,

Thank you reply.

I need the unit to be days.
 
User avatar
diamuxin
Member
Member
Posts: 319
Joined: Thu Sep 09, 2021 5:46 pm
Location: Alhambra's City

Re: RouterOS get uptime days

Tue Mar 19, 2024 11:35 am

I need the unit to be days.
Try:
# rextended's function (thanks Master)
# Convert uptime to seconds
:global timetoseconds do={
    :local inTime $1
    :local wPos   [:find $inTime "w" -1]
    :local dPos   [:find $inTime "d" -1]
    :local itLen  [:find $inTime "." -1] ; :if ([:typeof $itLen] = "nil") do={:set itLen [:len $inTime]}
    :local itSec  [:pick $inTime ($itLen - 2) $itLen]
    :local itMin  [:pick $inTime ($itLen - 5) ($itLen - 3)]
    :local itHou  [:pick $inTime ($itLen - 8) ($itLen - 6)]
    :local itDay  0
    :local itWee  0
    :if (([:typeof $wPos] = "nil") and ([:typeof $dPos] = "num")) do={:set itDay [:pick $inTime 0 $dPos] }
    :if (([:typeof $wPos] = "num") and ([:typeof $dPos] = "num")) do={:set itDay [:pick $inTime ($wPos + 1) $dPos] }
    :if  ([:typeof $wPos] = "num")                                do={:set itWee [:pick $inTime 0 $wPos] }
    :local totitSec ($itSec + (60 * $itMin) + (3600 * $itHou) + (86400 * $itDay) + (604800 * $itWee))
    :return $totitSec
}

:local upd ([$timetoseconds [/system resource get uptime]] / 86400)
:put "Uptime: $upd days"
Last edited by diamuxin on Tue Mar 19, 2024 12:18 pm, edited 2 times in total.
 
User avatar
patrikg
Member Candidate
Member Candidate
Posts: 262
Joined: Thu Feb 07, 2013 6:38 pm
Location: Stockholm, Sweden

Re: RouterOS get uptime days

Tue Mar 19, 2024 12:05 pm

Please use the code tag, to avoid Cool smile face when posting code pre formatted.
Key </>
 
User avatar
diamuxin
Member
Member
Posts: 319
Joined: Thu Sep 09, 2021 5:46 pm
Location: Alhambra's City

Re: RouterOS get uptime days

Tue Mar 19, 2024 12:13 pm

Please use the code tag, to avoid Cool smile face when posting code pre formatted.
Key </>
OK
 
User avatar
rextended
Forum Guru
Forum Guru
Posts: 12014
Joined: Tue Feb 25, 2014 12:49 pm
Location: Italy
Contact:

Re: RouterOS get uptime days  [SOLVED]

Tue Mar 19, 2024 12:20 pm

My function timetoseconds is correct...
viewtopic.php?p=930465#p930465

but if already is v7.12.1 (and up) just simply...
:put "Uptime: $([:tonum [/system resource get uptime]] / 86400) days"
 
ko00000000001
just joined
Topic Author
Posts: 9
Joined: Thu Feb 29, 2024 9:12 am

Re: RouterOS get uptime days

Tue Mar 19, 2024 12:58 pm

My function timetoseconds is correct...
viewtopic.php?p=930465#p930465

but if already is v7.12.1 (and up) just simply...
:put "Uptime: $([:tonum [/system resource get uptime]] / 86400) days"

That's great.
Effective and simple code.
Thank you.
 
kevinds
Long time Member
Long time Member
Posts: 651
Joined: Wed Jan 14, 2015 8:41 am

Re: RouterOS get uptime days

Wed Mar 20, 2024 8:52 pm

Effective and simple code.
Thank you.
Keep in mind, as I have recently found out, after ~500 days it restarts back to 0d00:00:01.
 
User avatar
rextended
Forum Guru
Forum Guru
Posts: 12014
Joined: Tue Feb 25, 2014 12:49 pm
Location: Italy
Contact:

Re: RouterOS get uptime days

Wed Mar 20, 2024 9:51 pm

 
kevinds
Long time Member
Long time Member
Posts: 651
Joined: Wed Jan 14, 2015 8:41 am

Re: RouterOS get uptime days

Wed Mar 20, 2024 9:52 pm

Exactly.

Who is online

Users browsing this forum: Ahrefs [Bot] and 5 guests