mirror of
https://github.com/pothi/mikrotik-scripts.git
synced 2025-06-26 07:58:37 +02:00
53 lines
1.6 KiB
Text
53 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."
|
||
|
}
|