#Script在RouterOS 5.7中測試過 #Date:2011/12/20 #Script Descript:半自動更新RouterOS的系統版本 #reference:http://wiki.mikrotik.com/wiki/Auto_upgrade_script_V3.x #---------------------------------- #要更新到那一個版本請在這邊設定 :local upgradeTo "5.11"; #---------------------------------- # newest version :local lMajor; :local lMinor; # current version :local vMajor; :local vMinor; :local myVer [/system resource get version]; :for i from=0 to=([:len $myVer] - 1) do={ :if ( [:pick $myVer $i] = ".") do={ :set vMajor [:tonum [:pick $myVer 0 $i]]; :set vMinor [:tonum [:pick $myVer ($i + 1) [:len $myVer]]] ; } } :if ($vMajor < 3) do={ :log warning "RouterOS version too old ($vMajor.$vMinor), update script not compatible.RouterOS版本太舊,不支援V3以下的版本"; } else={ #取得本平台的種類 (architecture-name is not available in older 3.x versions) :local platform [/system resource get architecture-name]; #設定版本 :local lVer $upgradeTo; :for i from=0 to=([:len $lVer] - 1) do={ :if ( [:pick $lVer $i] = ".") do={ :set lMajor [:tonum [:pick $lVer 0 $i]]; :set lMinor [:tonum [:pick $lVer ($i + 1) [:len $lVer]]] ; } } :if (($vMajor = $lMajor) && ($vMinor < $lMinor)) do={ :local pckgName "routeros-$platform-$lMajor.$lMinor.npk"; #設定要下載的位置 /tool fetch address=[:resolve "download2.mikrotik.com"] host="download2.mikrotik.com" mode=http src-path="/$pckgName"; :log info "Upgrade_script: 系統即將更新版本 Ver$upgradeTo"; /system reboot; } else={ :log info "Upgrade_script: already latest version.系統已經是新的版本 Ver$myVer"; } }