pothi.mikrotik-scripts/scripts/firmware-check-ros-v2.rsc
2022-11-18 09:49:21 +05:30

52 lines
1.6 KiB
Text

# Alert upon new Router OS Version
# requirement/s:
# policy: read, write, policy, test
# active internet
# $adminEmail
:global adminEmail
:if ([:typeof $adminEmail] = "nothing" || $adminEmail = "") do={
:log error "adminEmail is not defined or nil."; :error "Error: Check the log"; }
:local versionStatus
:log info "\nChecking for new version of Router OS..."
/system package update
check-for-updates once
:local updateStatus "incomplete"
:do {
:delay 2s
:set $updateStatus [get status]
:if ($updateStatus = "ERROR: no internet connection") do={ :error "ERROT: no internet connection"; }
:if ($updateStatus = "ERROR: connection timed out") do={ :error "ERROR: connection timed out"; }
:if ($updateStatus = "getting changelog...") do={ :set $updateStatus "incomplete" }
:if ($updateStatus = "finding out latest version...") do={ :set $updateStatus "incomplete" }
:if ($updateStatus = "New version is available" ) do={ }
:if ($updateStatus = "System is already up to date" ) do={ }
} while=( $updateStatus = "incomplete" )
:local installedVersion [get installed-version]
:local latestVersion [get latest-version]
:if ( $updateStatus = "New version is available" ) do={
# alternative method
# :if ( installedVersion != $latestVersion ) do={
:log info "A new update is available for Router OS."
/tool e-mail send to="$adminEmail" \
subject="Software Update is Available" \
body="A new Router OS update is available...
Installed Version: $installedVersion
Latest Version: $latestVersion
"
} else={
:log info "Router OS is up to date."
}