From 97345bd33beb69818535e7f5fe6bf701baed3d6b Mon Sep 17 00:00:00 2001 From: Pothi Kalimuthu <1254302+pothi@users.noreply.github.com> Date: Sat, 12 Feb 2022 14:03:41 +0530 Subject: [PATCH] Better docs --- scripts/alert-on-new-lte-modem-firmware.rsc | 24 +++++++++++++ scripts/alert-on-new-ros-version.rsc | 39 +++++++++++++++++++++ scripts/alert-upon-new-version.rsc | 27 -------------- scripts/firmware-check.rsc | 14 -------- scripts/lte-firmware-alert.rsc | 15 -------- 5 files changed, 63 insertions(+), 56 deletions(-) create mode 100644 scripts/alert-on-new-lte-modem-firmware.rsc create mode 100644 scripts/alert-on-new-ros-version.rsc delete mode 100644 scripts/alert-upon-new-version.rsc delete mode 100644 scripts/firmware-check.rsc delete mode 100644 scripts/lte-firmware-alert.rsc diff --git a/scripts/alert-on-new-lte-modem-firmware.rsc b/scripts/alert-on-new-lte-modem-firmware.rsc new file mode 100644 index 0000000..1f73408 --- /dev/null +++ b/scripts/alert-on-new-lte-modem-firmware.rsc @@ -0,0 +1,24 @@ +# Alert upon new firmware for LTE Modem + +# Ref: https://wiki.mikrotik.com/wiki/Manual:Interface/LTE#Modem_firmware_upgrade +:local adminEmailAddress "admin@example.com" + +:log info "Checking for new firmware for LTE Modem..." + +# if you run this script at "startup", +# the following indicates the time for the internet to go "up" +:delay 60s + +:local lteFirmwareInfo [/interface lte firmware-upgrade lte1 as-value]; + +:local lteInstalledVer ($lteFirmwareInfo->"installed"); +:local lteLatestVer ($lteFirmwareInfo->"latest"); + +:if ( $lteInstalledVer != $lteLatestVer ) do={ + /tool e-mail send to="$adminEmailAddress" subject="[Mikrotik] A new FIRMWARE update is available for (SXT) LTE." body="See subject!" + :log critical "A new firmware is available for LTE modem and an email is probably sent to '$adminEmailAddress'." +} else={ + :log info "No new firmware update for LTE." + :log info "LTE Installed Firmware Version: $lteInstalledVer" + :log info " LTE Latest Firmware Version: $lteLatestVer" +} diff --git a/scripts/alert-on-new-ros-version.rsc b/scripts/alert-on-new-ros-version.rsc new file mode 100644 index 0000000..d2b269c --- /dev/null +++ b/scripts/alert-on-new-ros-version.rsc @@ -0,0 +1,39 @@ +# Alert upon new version + +# requirement/s: $adminEmailAddress +:local adminEmailAddress "admin@example.com" + +:log info "Checking for new version of RouterOS..." + +# if you run this script at "startup", +# the following indicates the time for the internet to go "up" +:delay 60s + +/system package update + +check-for-updates once + +:local verionStatus + +:do { + :delay 2s + + :set $versionStatus [get status] + # alternative way to get the above info + # :set $versionStatus ([print as-value]->"status") +} while=( $versionStatus = "finding out latest version..." ) + +# for debugging +# :put $versionStatus +# :put $adminEmailAddress + +:if ( $versionStatus = "New version is available" ) do={ +# alternative method +# :if ( [get installed-version] != [get latest-version] ) do={ + :log info "A new firmware is available for Router OS and an email is probably sent to $adminEmailAddress." + /tool e-mail send to="$adminEmailAddress" \ + subject="[Mikrotik] Software Update is Available" \ + body="A new update is available for your MikroTik device" +} else={ + :log info "System is already up to date" +} diff --git a/scripts/alert-upon-new-version.rsc b/scripts/alert-upon-new-version.rsc deleted file mode 100644 index 3151d25..0000000 --- a/scripts/alert-upon-new-version.rsc +++ /dev/null @@ -1,27 +0,0 @@ -# Alert upon new version -# requirement $adminEmailAddress or configure it below -# :local adminEmailAddress "admin@example.com" - -# if you run this script at "startup", -# the following indicates the time for the internet to go "up" -:delay 60s - -/system package update - -check-for-updates once - -:local verionStatus -:set $versionStatus [get status] -# alternative way to get the above info -# :set $versionStatus ([print as-value]->"status") - -:put $versionStatus -:put $adminEmailAddress - -:if ( $versionStatus = "New version is available" ) do={ -# alternative method -# :if ( [get installed-version] != [get latest-version] ) do={ - /tool e-mail send to="$adminEmailAddress" \ - subject="[Mikrotik] Software Up date Available" \ - body="A new update is available for your MikroTik device" -} diff --git a/scripts/firmware-check.rsc b/scripts/firmware-check.rsc deleted file mode 100644 index 9da84f7..0000000 --- a/scripts/firmware-check.rsc +++ /dev/null @@ -1,14 +0,0 @@ -:local installedFirmware; -:local latestFirmware; - -set $installedFirmware ([/int lte info lte1 once as-value]->"revision"); -:put " Installed Firmware: $installedFirmware"; - -set $latestFirmware ([/int lte firmware-upgrade lte1 as-value]->"latest"); -:put " Latest Firmware: $latestFirmware"; - -:if ($installedFirmware != $latestFirmware) do={ - :log info "A firmware update is available!!"; -} else={ - :log info "The installed firmware is the latest firmware!"; -} diff --git a/scripts/lte-firmware-alert.rsc b/scripts/lte-firmware-alert.rsc deleted file mode 100644 index c21dc7a..0000000 --- a/scripts/lte-firmware-alert.rsc +++ /dev/null @@ -1,15 +0,0 @@ -# Ref: https://wiki.mikrotik.com/wiki/Manual:Interface/LTE#Modem_firmware_upgrade - -:local lteFirmwareInfo [/interface lte firmware-upgrade lte1 as-value]; - -:local lteInstalledVer ($lteFirmwareInfo->"installed"); -:local lteLatestVer ($lteFirmwareInfo->"latest"); - -:if ( $lteInstalledVer != $lteLatestVer ) do={ - /tool e-mail send to="$emailAddress" subject="[Mikrotik] A new FIRMWARE update is available for (SXT) LTE." body="See subject!" - :log info "A new firmware is available for LTE modem." -} else={ - :log info "No new firmware update for LTE." - :log info "LTE Installed Firmware Version: $lteInstalledVer" - :log info "LTE Latest Firmware Version: $lteLatestVer" -}