- Script pro automatický upgrade RouterOS v6 a Firmware s upozorněním na e-mail
- Stačí vložit do Schelduleru nebo do Scripts
- Je potřeba nastavit /tools/email, aby chodily notifikace o provedení na e-mail
:local FWcurrent [/system routerboard get current-firmware] :local FWupgrade [/system routerboard get upgrade-firmware] :local d [/system clock get date] :local t [/system clock get time] :local mk [/system identity get name] :local emailTo "muj@email.cz" ### Pro upgrade ROS /system package update check-for-updates once :delay 3s :local novaVerze [get latest-version] :if ( [get status] = "New version is available") \ do={ \ :log info "Nova verze ROS $novaVerze je dostupna, stahuji..." :tool e-mail send to=$emailTo subject="$mk upgrade RoS" body="V $t $d, na verzi RouterOS: $novaVerze" install :log info "Restartuji..." } \ else={ \ :log info "Aktualni ROS, kontroluji aktualnost Firmware..." ### Pro upgrade Firmware :if ($FWcurrent = $FWupgrade) \ do={ \ :log info "Aktualni Firmware" \ } \ else={ \ :log info "Neaktualni Firmware" :delay 2 :log info "Nastavuji upgrade" /system routerboard upgrade :tool e-mail send to=$emailTo subject="$mk upgrade Firmware" body="V $t $d, na verzi firmware: $FWupgrade" :delay 10 :log info "Restartuji..." /system reboot } }
Kompletní kod. Stačí vše vložit do terminálu a nastaví se.
/system script add dont-require-permissions=no name=upgradeROS owner=spravce policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":lo\ cal FWcurrent [/system routerboard get current-firmware]\r\ \n:local FWupgrade [/system routerboard get upgrade-firmware]\r\ \n:local d [/system clock get date]\r\ \n:local t [/system clock get time]\r\ \n:local mk [/system identity get name]\r\ \n:local emailTo \"muj@email.cz\" \r\ \n### Pro upgrade ROS\r\ \n/system package update\r\ \ncheck-for-updates once\r\ \n:delay 3s\r\ \n:local novaVerze [get latest-version]\r\ \n:if ( [get status] = \"New version is available\") \\\r\ \ndo={ \\\r\ \n:log info \"Nova verze ROS \$novaVerze je dostupna, stahuji...\" \r\ \n:tool e-mail send to=\$emailTo subject=\"\$mk upgrade RoS\" body=\"V \$t \ \$d, na verzi RouterOS: \$novaVerze\"\r\ \ninstall \r\ \n:log info \"Restartuji...\" \r\ \n} \\\r\ \nelse={ \\\r\ \n:log info \"Aktualni ROS, kontroluji aktualnost Firmware...\" \r\ \n### Pro upgrade Firmware\r\ \n:if (\$FWcurrent = \$FWupgrade) \\\r\ \n do={ \\\r\ \n :log info \"Aktualni Firmware\" \\\r\ \n } \\\r\ \n else={ \\\r\ \n :log info \"Neaktualni Firmware\" \r\ \n :delay 2 \r\ \n :log info \"Nastavuji upgrade\" \r\ \n /system routerboard upgrade\r\ \n :tool e-mail send to=\$emailTo subject=\"\$mk upgrade Firmware\" bod\ y=\"V \$t \$d, na verzi firmware: \$FWupgrade\"\r\ \n :delay 10 \r\ \n :log info \"Restartuji...\"\r\ \n /system reboot\r\ \n } \r\ \n} \r\ \n" /system scheduler add interval=2d name="upgrade ROS new" on-event=\ "/system script run \"upgradeROS\"" policy=\ reboot,read,write,policy,test,password,sensitive \ start-date=2022-01-01 start-time=04:44:44
Aktualizováno: 10.11.2023
Dobrý den,
když vložím tento kod do skriptu na mikrotik tak mi to udělá z verze 6.48 na verzi 6.49 a ne na verzi 7.2.1 a udělá to jen Upgrade a ne update FW
do scheduleru jsem dal:
name: upgrade
Start time: ……
interval: 15d 00:00:00
/system script run upgrade
a do skriptu:
name: upgrade
plus celý skript viz níže s vlastním emailem
:local FWcurrent [/system routerboard get current-firmware]
:local FWupgrade [/system routerboard get upgrade-firmware]
:local RBname [/system identity get name]
:local d [/system clock get date]
:local t [/system clock get time]
### Pro upgrade ROS
/system package update
check-for-updates once
:delay 3s
:if ( [get status] = „New version is available“) \
do={ \
:log info „Nova verze ROS je dostupna, stahuji…“
:tool e-mail send to=muj@mail.cz subject=“Upgrade RoS – $n“ body=“$n – $t $d“
install
:log info „Restartuji…“
} \
else={ \
:log info „Aktualni ROS, kontroluji aktualnost Firmware…“
### Pro upgrade Firmware
:if ($FWcurrent = $FWupgrade) \
do={ \
:log info „Aktualni Firmware“ \
} \
else={ \
:log info „Neaktualni Firmware“
:delay 2
:log info „Nastavuji upgrade“
/system routerboard upgrade
:delay 10
:log info „Restartuji…“
/system reboot
}
}
Jo a co ten druhý skript,když budu chtít ten vložím taky celý a kam?
/system scheduler
add interval=1w name=“upgrade ROS“ on-event=“:local FWcurrent [/system routerboard get current-firmware]\r\
\n:local FWupgrade [/system routerboard get upgrade-firmware]\r\
\n### Pro upgrade ROS\r\
\n/system package update\r\
\ncheck-for-updates once\r\
\n:delay 3s\r\
\n:if ( [get status] = \“New version is available\“) \\\r\
\ndo={ \\\r\
\n:log info \“Nova verze ROS je dostupna, stahuji…\“ \r\
\ninstall \r\
\n:log info \“Restartuji…\“ \r\
\n} \\\r\
\nelse={ \\\r\
\n:log info \“Aktualni ROS, kontroluji aktualnost Firmware…\“ \r\
\n### Pro upgrade Firmware\r\
\n:if (\$FWcurrent = \$FWupgrade) \\\r\
\n do={ \\\r\
\n :log info \“Aktualni Firmware\“ \\\r\
\n } \\\r\
\n else={ \\\r\
\n :log info \“Neaktualni Firmware\“ \r\
\n :delay 2 \r\
\n :log info \“Nastavuji upgrade\“ \r\
\n /system routerboard upgrade\r\
\n :delay 10 \r\
\n :log info \“Restartuji…\“\r\
\n /system reboot\r\
\n } \r\
\n} \r\
\n“ policy=reboot,read,write,policy,test,password,sensitive start-time=startup
Ano, skript je pro v6, upgrade firmware udělá při dalším spuštění skriptu (zjistí že je aktuální verze RoS a provede upgrade).
Druhý kod stačí zkopírovat a jen ho vložit (popř. odEnterovat) do terminálu a vše se naimportuje.
díky jde tam nahrát když je pro verzi 6 a já tam mám verzi v mikrotiku 7 bude updatovat zase 7?
díky moc
Zatím ještě nikde nemám nasazenou v7, až budu, určitě budu script aktualizovat.
díky jde tam nahrát když je pro verzi 6 a já tam mám verzi v mikrotiku 7 bude updatovat zase 7?