mirror of
https://github.com/pothi/mikrotik-scripts.git
synced 2025-06-27 08:28:53 +02:00
Re/move unused scripts and add a new combined script
This commit is contained in:
parent
ba16b70013
commit
80469763d7
6 changed files with 74 additions and 111 deletions
|
@ -1,24 +0,0 @@
|
|||
# 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"
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
# Alert upon new Router OS Version
|
||||
|
||||
# requirement/s:
|
||||
# policy: read, write, policy, test
|
||||
:local adminEmail "admin@example.com"
|
||||
:local startDelay "90s"
|
||||
|
||||
# if you run this script at "startup",
|
||||
# the following indicates the time for the internet to go "up"
|
||||
# ToDo: Find it out dynamically
|
||||
# :delay $startDelay
|
||||
|
||||
:log info "Checking for new version of RouterOS..."
|
||||
|
||||
/system package update
|
||||
|
||||
check-for-updates once
|
||||
|
||||
:local versionStatus
|
||||
:local deviceIdentity [/system identity get name]
|
||||
|
||||
:do {
|
||||
:delay 3s
|
||||
|
||||
:set $versionStatus [get status]
|
||||
# alternative way to get the above info
|
||||
# :set $versionStatus ([print as-value]->"status")
|
||||
} while=( $versionStatus = "finding out latest version..." )
|
||||
|
||||
:local installedVersion [get installed-version]
|
||||
:local latestVersion [get latest-version]
|
||||
|
||||
:if ( $versionStatus = "New version is available" ) do={
|
||||
# alternative method
|
||||
# :if ( installedVersion != $latestVersion ) do={
|
||||
:log info "A new update is available for Router OS and an email is probably sent to $adminEmail."
|
||||
/tool e-mail send to="$adminEmail" \
|
||||
subject="[Mikrotik $deviceIdentity] Software Update is Available" \
|
||||
body="A new update is available for your MikroTik device: \"$deviceIdentity\" ...
|
||||
|
||||
Installed Version: $installedVersion
|
||||
Latest Version: $latestVersion
|
||||
"
|
||||
} else={
|
||||
:log info "Router OS is already up to date."
|
||||
}
|
|
@ -6,6 +6,9 @@
|
|||
# $adminEmail
|
||||
|
||||
:global adminEmail
|
||||
:if ([:typeof $adminEmail] = "nothing" || $adminEmail = "") do={
|
||||
:log error "adminEmail is not defined or nil."; :error "Error: Check the log"; }
|
||||
|
||||
:local oldVersion
|
||||
:local newVersion
|
||||
|
|
@ -6,6 +6,9 @@
|
|||
# $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..."
|
68
scripts/firmware-check.rsc
Normal file
68
scripts/firmware-check.rsc
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Alert upon new Router OS Version and pending RouterBoard firmware update!
|
||||
|
||||
# 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
|
||||
|
||||
:do {
|
||||
:delay 3s
|
||||
|
||||
:set $versionStatus [get status]
|
||||
# alternative way to get the above info
|
||||
# :set $versionStatus ([print as-value]->"status")
|
||||
} while=( $versionStatus = "finding out latest version..." )
|
||||
|
||||
:local installedVersion [get installed-version]
|
||||
:local latestVersion [get latest-version]
|
||||
|
||||
:if ( $versionStatus = "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."
|
||||
}
|
||||
|
||||
# Notify to upgrade RouterBoard Firmware
|
||||
|
||||
# requirement/s:
|
||||
# policy: read, write, policy, test
|
||||
# active internet
|
||||
# $adminEmail
|
||||
|
||||
:global adminEmail
|
||||
:local oldVersion
|
||||
:local newVersion
|
||||
|
||||
:log info "\nChecking for pending Routerboard firmware update..."
|
||||
|
||||
/system routerboard
|
||||
:set oldVersion [get current-firmware]
|
||||
:set newVersion [get upgrade-firmware]
|
||||
|
||||
:if ( $oldVersion != $newVersion ) do={
|
||||
:log info "RouterBoard firmware can be upgraded from $oldVersion to $newVersion \n"
|
||||
/tool e-mail send to="$adminEmail" subject="RouterBoard firmware upgrade!" \
|
||||
body="An upgrade from $oldVersion to $newVersion is pending!"
|
||||
} else={
|
||||
:log info "RouterBoard Firmware is up to date."
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
# Source: https://forum.mikrotik.com/viewtopic.php?t=178312
|
||||
|
||||
/system script job remove [find script=lteLogger2]
|
||||
|
||||
/system scheduler
|
||||
remove [find name=lteLogger2]
|
||||
add interval=1m name=lteLogger2 on-event="#Script WatchDog for script name:\r\
|
||||
\nlocal ScriptName lteLogger2\r\
|
||||
\n\r\
|
||||
\n\r\
|
||||
\nlocal ScriptRuningInstances [:len [system script job find script=\$ScriptName]]\r\
|
||||
\nif ( \$ScriptRuningInstances = 0) do={/system script run \$ScriptName};\r\
|
||||
\nif ( \$ScriptRuningInstances = 1) do={};\r\
|
||||
\nif ( \$ScriptRuningInstances >= 2) do={system script job remove [find script=\$ScriptName]};\r\
|
||||
\n\r\
|
||||
\n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=dec/23/2019 start-time=07:31:44
|
||||
|
||||
|
||||
/system script
|
||||
remove [find name=lteLogger2]
|
||||
add name=lteLogger2 source="#:local watchItems pin-status,functionality,registra\
|
||||
tion-status,current-cellid,enb-id,sector-id,phy-cellid,access-technology,primary-band,ca-band,rssi\r\
|
||||
\n:local watchItems current-cellid,enb-id,primary-band,ca-band\r\
|
||||
\n:local watchFreq 3s\r\
|
||||
\n:local lteInfo\r\
|
||||
\n:local prevLteInfo ({})\r\
|
||||
\n:while (true) do={\r\
|
||||
\n\t:do {:set lteInfo [/interface lte info lte1 once as-value]} on-error={}\r\
|
||||
\n\t:foreach m in=\$watchItems do={\r\
|
||||
\n\t\t:if ((\$lteInfo->\$m)!=(\$prevLteInfo->\$m)) do={\r\
|
||||
\n\t\t\t:put (\$m.\": \".(\$prevLteInfo->\$m).\" -> \".(\$lteInfo->\$m))\r\
|
||||
\n\t\t\t:log warning (\$m.\": \".(\$prevLteInfo->\$m).\" -> \".(\$lteInfo->\$m))\r\
|
||||
\n\t\t\tlocal mpprev (\$prevLteInfo->\$m);\r\
|
||||
\n\t\t\tlocal mpnext (\$lteInfo->\$m);\r\
|
||||
\n\t\t\t:set (\$prevLteInfo->\$m) (\$lteInfo->\$m)\r\
|
||||
\n\t\t\t}\r\
|
||||
\n\t\t}\r\
|
||||
\n\t:delay \$watchFreq\r\
|
||||
\n\t}\r\
|
||||
\n\r\
|
||||
\n"
|
Loading…
Add table
Add a link
Reference in a new issue