Cool console

What happened to the http://wiki.mikrotik.com/wiki/Cool_Console script?
It doesn’t seem to work with the new 7.1 ROS version.
Any update of the script ?

Do you have the script, page is blank?

yes I know that’s why I am posting.
I have found this from https://mikrotik-routeros.com/2013/05/cool-console-terminal-health/

but it is not working on very recent versions of ros

:local content
:local logcontenttemp ""
:local logcontent ""
:local counter
:local v 0
 
:set logcontenttemp "You are logged into: $[/system identity get name]"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "############### system health ###############"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "Uptime:  $[/system resource get uptime] d:h:m:s"
:set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
 
:set logcontenttemp "CPU: $[/system resource get cpu-load]%"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "RAM: $(([/system resource get total-memory]-[/system resource get free-memory])/1024)/$([/system resource get total-memory]/1024)M"
:set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
 
##
#voltage and temp readout not available on x86, check for this before trying
#to record otherwise script will halt unexpectedly
##
 
:if ([/system resource get architecture-name]="x86") do={
  :set logcontenttemp "Voltage: NIL"
  :set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
  :set logcontenttemp "Temp: NIL"
  :set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
} else={
  :set logcontenttemp "Voltage: $[:pick [/system health get voltage] 0 2] v"
  :set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
  :set logcontenttemp "Temp: $[ /system health get temperature]c"
  :set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
}
 
:set logcontenttemp "############# user auth details #############"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:foreach counter in=[/ip hotspot active find ] do={:set v ($v + 1)}
:set logcontenttemp "Hotspot online: $v |"
:set v 0
:foreach counter in=[/ppp active find ] do={:set v ($v + 1)}
:set logcontenttemp ("$logcontenttemp" . " PPP online: $v")
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
/system note set note="$logcontent"

The script gives a login page with info about Router health and a list of hotspot and ppp users.
Its ok for a single router management.

The way system resources are being presented are change in v7.

This shows how I collect it from RouterOS in a script to get it inn to Splunk (that I do use to monitor multiple routers)

# Collect system health
# ----------------------------------
:do {
	# New version
	:foreach id in=[/system health find] do={
		:local health "$[/system health get $id]"
		:set ( "$health"->"script" ) "health"
		:log info message="$health"
	}
} on-error={
	# Old version
	:if (!([/system health get]~"(state=disabled|^\$)")) do={
		:local health "$[/system health get]"
		:set ( "$health"->"script" ) "health"
		:log info message="$health"
	}
}

If you remove voltage and temperature, you will get a login prompt some like this:

You are logged into: Link123-Remote
############### system health ###############
Uptime:  6d05:28:48 d:h:m:s | CPU: 100%
RAM: 41484/65536M | 
############# user auth details #############
Hotspot online: 0 | PPP online: 0

PS this old router goes to 100% while running script on version 7.2rc1

Here is script rewritten to work with 7.x RouterOS

Output

You are logged into: Link123-Remote
############### system health ###############
Uptime:  6d06:02:27 d:h:m:s | CPU: 100%
RAM: 41504/65536M | 
Voltage: 12.2 v | Temp: 14c
############# user auth details #############
Hotspot online: 0 | PPP online: 0

Script

{

:local content
:local logcontenttemp ""
:local logcontent ""
:local counter
:local v 0
 
:set logcontenttemp "You are logged into: $[/system identity get name]"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "############### system health ###############"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "Uptime:  $[/system resource get uptime] d:h:m:s"
:set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
 
:set logcontenttemp "CPU: $[/system resource get cpu-load]%"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:set logcontenttemp "RAM: $(([/system resource get total-memory]-[/system resource get free-memory])/1024)/$([/system resource get total-memory]/1024)M"
:set logcontent ("$logcontent" ."$logcontenttemp" ." | \n")
 
##
#voltage and temp readout not available on x86, check for this before trying
#to record otherwise script will halt unexpectedly
##
 
:if ([/system resource get architecture-name]="x86") do={
  :set logcontenttemp "Voltage: NIL"
  :set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
  :set logcontenttemp "Temp: NIL"
  :set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
} else={
  /system/health
  :set logcontenttemp "Voltage: $[get [find name=voltage] value] v"
  :set logcontent ("$logcontent" ."$logcontenttemp" ." | ")
  :set logcontenttemp "Temp: $[get [find name=temperature] value]c"
  :set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
}
 
:set logcontenttemp "############# user auth details #############"
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
:foreach counter in=[/ip hotspot active find ] do={:set v ($v + 1)}
:set logcontenttemp "Hotspot online: $v |"
:set v 0
:foreach counter in=[/ppp active find ] do={:set v ($v + 1)}
:set logcontenttemp ("$logcontenttemp" . " PPP online: $v")
:set logcontent ("$logcontent" ."$logcontenttemp" ."\n")
 
/system note set note="$logcontent"
}

PS I do not use ut, since I have to click OK every time I logg in :slight_smile: