❗ Muammo
MikroTik RouterOS avtomatik yangilash jarayonini boshqarish muammo bo’lishi mumkin.
🎯 Yechim
Avto yangilash skripti yordamida RouterOSning so’nggi versiyasiga yangilash imkoniyati yaratiladi.
🛠 Sozlash bosqichlari
1️⃣ Skript tayyorlash
Skriptni ishga tushirishdan avval, asosiy RouterOS versiya raqamini saqlash kerak.
/file set latestVer.txt content="3.24";
2️⃣ Skriptni ishga tushirish
Skriptni ishga tushirish uchun quyidagi kodni ishlatish mumkin:
:local lMajor;
:local lMinor;
: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 versiya juda eski ($vMajor.$vMinor), yangilash skripti bilan mos emas";
} else={
:local platform [/system resource get architecture-name];
/tool fetch address="172.16.0.1" src-path="latestVer.txt" user="admin" password="" mode=ftp;
:local lVer [/file get latestVer.txt content];
: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 "www.mikrotik.com"] host="www.mikrotik.com" mode=http src-path="download/" . $pckgName;
/system reboot;
} else={
:log info "Yangilash skripti: allaqachon so'nggi versiya";
}
}
⚠️ Diqqat
Skript RouterOS 3.x versiyasi uchun mo’lyallangan. Versiya farqi bo’lsa, skript ishlamay qolishi mumkin.
✅ Xulosa
Avto yangilash skripti yordamida RouterOSning so’nggi versiyasiga yangilash imkoniyati yaratiladi.