MikroTik Scripts: автоматическое обновление прошивки устройства

В устройствах MikroTik после обновления версии RouterOS следует обновить прошивку устройства, до актуальной версии. Использование несовпадающей версии RouterOS и Firmware может вызвать разнообразные и неявные проблемы. Для автоматизации обновления используем скрипт помещенный в планировщик задач (Scheduler) MikroTik.

Скрипт проверен на RouterOS версии 7.20.7.

[System]➙[Scheduler]

Создайте новый скрипт:

  • Enabled: yes
  • Comment: Automatic RouterBOARD firmware verification and update after device startup.
  • Name: FirmwareUpdate
  • Start Time: startup
  • Policy: read, write, reboot.

Код:

/system/routerboard/
:if ( [get current-firmware] != [get upgrade-firmware]) do={upgrade; :system reboot} else={:log info message="Scheduler: The latest firmware version is being used."}
MikroTik Scripts: автоматическое обновление прошивки устройства - MHelp.kz
MikroTik Scripts: автоматическое обновление прошивки устройства

Скрипт будет запускаться при каждом включении устройства. Если версия имеющейся прошивки (firmware) не совпадает с версией обновления, будет скачиваться новая версия и выполняться перезагрузка устройства, иначе будет выводится сообщение о использовании последней версии прошивки.

Так как с течением времени многие из используемых настроек забываются, в выводе скрипта используется слово «Scheduler», чтобы позже было понятно, что выводит такое сообщение в логе.

Если этот скрипт будет использоваться на роутере, где для установки соединения с интернетом может потребоваться дополнительное время, добавьте в скрипт команду задержки (например на 60 секунд), после запуска устройства.

Код:

:delay 60
/system/routerboard/
:if ( [get current-firmware] != [get upgrade-firmware]) do={upgrade; :system reboot} else={:log info message="Scheduler: The latest firmware version is being used."}

Код, для выполнения в терминале или скриптах Ansibe (без задержки в 60 секунд):

/system scheduler
add comment="Automatic RouterBOARD firmware verification and update after device startup." name=FirmwareUpdate on-event=":delay 60\n/system/routerboard/\n:if ( [get current-firmware] != [get upgrade-firmware]) do={upgrade; :system reboot} else={:log info message=\"Don`t need upgrade\"}" policy=reboot,read,write start-time=startup

Статья из блока:

Оставьте комментарий

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.