## Fox RouterOS System & Firmware Updater
:local UpdateChannel "stable";
:local DeviceName [/system identity get name ];
:local UpdateFirmware true;
:local Model;
:local Arch;
## Initiate Check on RouterOS Arch
:onerror e {
:set Model [/system routerboard get model ];
:set Arch true;
} do={
:set Arch false;
}
## End RouterOS Arch Check
## Update RouterOS
:log info ("Checking RouterOS status...");
/system package update
set channel=$UpdateChannel
check-for-updates
# Wait on slow connections
:delay 60s;
:local SystemVer [/system package update get installed-version ];
:local UpstreamVer [/system package update get latest-version ];
:local Status [/system package update get status ];
:local Channel [/system package update get channel ];
:log info ("System of $DeviceName is $SystemVer");
:if ($SystemVer != $UpstreamVer) do={
# New version of RouterOS available
:log info ("New version is available ( channel: $Channel ).");
:log info ("System update: $SystemVer => $UpstreamVer");
:log info ("Preparing to update system...");
# Wait for system email log timer
:delay 210s;
:log info ("Start updating :) ");
:delay 90s;
install
} else={
# No RouterOS update available, nothing to do, just log info
:log info ("$Status.");
}
## End Update RouterOS
## Upgrade RouterBOARD Firmware
:if ($Arch) do={
:if ($UpdateFirmware) do={
:log info ("Checking RouterBOARD status...");
/system routerboard
:local SystemFirmware [/system routerboard get current-firmware ];
:local UpstreamFirmware [/system routerboard get upgrade-firmware ];
:log info ("Firmware of $DeviceName is $SystemFirmware");
:if ($SystemFirmware != $UpstreamFirmware) do={
# New version of firmware available
:log info ("New version is available ( $Model ).");
:log info ("Firmware upgrade: $SystemFirmware => $UpstreamFirmware");
upgrade
# Firmware upgraded, need to reboot to finish
:log info ("A firmware reboot is required.");
:delay 210s;
:log info ("Start rebooting :) ");
:delay 90s;
/system reboot
} else={
# No firmware upgrade available, log info
:log info ("Firmware is already up to date.");
}
} else={
# Automatic firmware upgrade disabled, log info
:log info ("Firmware automatic upgrades disabled.");
}
}
## End Upgrade RouterBOARD Firmware
## End Fox RouterOS System & Firmware Updater
版权归属:
Backspace
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区