##
## Automatically upgrade RouterOS and Firmware
## https://github.com/massimo-filippi/mikrotik
##
## script by Maxim Krusina, maxim@mfcc.cz
## based on: http://wiki.mikrotik.com/wiki/Manual:Upgrading_RouterOS
## created: 2014-12-05
## updated: 2015-12-09
## tested on: RouterOS 6.33.1 / multiple HW devices, won't work on 6.27 and older (different update process & value naming)
##
########## Set variables
## Notification e-mail
:local email "your@email.com"
########## Do the stuff
## Check for update
/system package update
set channel=current
check-for-updates
## Waint on slow connections
:delay 15s;
## Important note: "installed-version" was "current-version" on older Roter OSes
:if ([get installed-version] != [get latest-version]) do={
## New version of RouterOS available, let's upgrade
/tool e-mail send to="$email" subject="Upgrading RouterOS on router $[/system identity get name]" body="Upgrading RouterOS on router $[/system identity get name] from $[/system package update get installed-version] to $[/system package update get latest-version] (channel:$[/system package update get channel])"
:log info ("Upgrading RouterOS on router $[/system identity get name] from $[/system package update get installed-version] to $[/system package update get latest-version] (channel:$[/system package update get channel])")
## Wait for mail to be send & upgrade
:delay 15s;
## "install" command is reincarnation of the "upgrade" command - doing exactly the same but under a different name
install
} else={
## RouterOS latest, let's check for updated firmware
:log info ("No RouterOS upgrade found, checking for HW upgrade...")
/system routerboard
:if ( [get current-firmware] != [get upgrade-firmware]) do={
## New version of firmware available, let's upgrade
/tool e-mail send to="$email" subject="Upgrading firmware on router $[/system identity get name]" body="Upgrading firmware on router $[/system identity get name] from $[/system routerboard get current-firmware] to $[/system routerboard get upgrade-firmware]"
:log info ("Upgrading firmware on router $[/system identity get name] from $[/system routerboard get current-firmware] to $[/system routerboard get upgrade-firmware]")
## Wait for mail to be send & upgrade
:delay 15s;
upgrade
## Wait for upgrade, then reboot
:delay 180s;
/system reboot
} else={
:log info ("No Router HW upgrade found")
}
}
fonte: https://github.com/massimo-filippi/mikrotik/blob/master/auto-upgrade.rsc






0 comentários:
Postar um comentário