اسکریپت بروزرسانی خودکار میکروتیک ورژن 3.x

  • شروع کننده موضوع ruin3r
  • تاریخ شروع

ruin3r

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
10/5/15
ارسال ها
146
امتیاز
6
سلام.
با توجه به نمونه اسکریپت هایی که در پست های قبل قرار دادم,در این اسکریپت شما رو با نحوه بروزرسانی خودکار میکروتیک آشنا میکنم.
امکانات اسکریپت:
  1. شناسایی ورژن فعلی که شمال آخرین ROS می باشد.
  2. شناسایی آخرین نسخه ارائه شده
  3. مقایسه نسخه فعلی و نسخه جدید
  4. دریافت آخرین نسخه از سرور میکروتیک و بروزرسانی خودکار
  5. ریبوت دستگاه پس از بروزرسانی
در ابتدا شما باید فایل حاوی جدید ترین شماره نسخه بر روی روتر اصلی ایجاد کنید.

کد:
/file print file="latestVer";
/file set latestVer.txt content="3.24";
درحال حاظر با قطعه کد زیر اسکریپت رو راه اندازی کنید:

کد:
#########################################################################
# download and upgrade
#########################################################################

# 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";
} else={

#      detect platform (architecture-name is not available in older 3.x versions)
       :local platform [/system resource get architecture-name];


#      fetch latest version
       /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 "Upgrade_script: already latest version";
        }
}
در این اسکریپت سیستم عامل هر 24 ساعت بررسی میکند که اگر نسخه جدیدی آمده باشد آن را بروزرسانی کند.

موفق و ماید باشید.
شاهین سالک توتونچی
 

farshid

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
5/1/15
ارسال ها
51
امتیاز
3
سلام
البته شاهین جان آپدیت خودکار رو من به شخصه توصیه نمی کنم بهتر هست همیشه برای آپدیت به نسخه بعد شما دلیلی داشته باشید یا بخواید از امکانات جدید بهره برداری کنید یا مسلما در قسمتی اگر bug داده آپدیت کنید.
مثلا روی نسخه 5 روی ipsec باگ داشت که من به شخصه برای بعضی از سرویس ها مجبور شدم بروزرسانی کنم.
چون معمولا Device های شبکه ای قلب و Core شبکه رو تشکل میدند و بهتر هست تا حد امکان آپدیت نشه چون آپدیت و ریستارت هم چند دقیقه ای شبکه رو Down میکنه هم ممکن هست شاید مشکلی پیش بیاد(البته احتمال مشکل خیلی خیلی کم هست) هم اینکه معمولا اگر بار شبکه روی میکروتیک بالا باشه روی pps/bps هایی با rate بالا منظورم هست ممکن هست این اسکریپت هم موجب بالا رفتن مصرف Cpu بشه.
چون در میکروتیک موارد زیادی به اصلاح resource hungry یا اصطلاح کوچه بازاری خودمون منابع خور وجود داره.
 

farshid

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
5/1/15
ارسال ها
51
امتیاز
3
ولی بازم ممنون اسکریپت جالبی بود.
 

ruin3r

مدیر کل انجمن
عضو کادر مدیریت
مدیر کل انجمن
عضویت
10/5/15
ارسال ها
146
امتیاز
6
سلام
البته شاهین جان آپدیت خودکار رو من به شخصه توصیه نمی کنم بهتر هست همیشه برای آپدیت به نسخه بعد شما دلیلی داشته باشید یا بخواید از امکانات جدید بهره برداری کنید یا مسلما در قسمتی اگر bug داده آپدیت کنید.
مثلا روی نسخه 5 روی ipsec باگ داشت که من به شخصه برای بعضی از سرویس ها مجبور شدم بروزرسانی کنم.
چون معمولا Device های شبکه ای قلب و Core شبکه رو تشکل میدند و بهتر هست تا حد امکان آپدیت نشه چون آپدیت و ریستارت هم چند دقیقه ای شبکه رو Down میکنه هم ممکن هست شاید مشکلی پیش بیاد(البته احتمال مشکل خیلی خیلی کم هست) هم اینکه معمولا اگر بار شبکه روی میکروتیک بالا باشه روی pps/bps هایی با rate بالا منظورم هست ممکن هست این اسکریپت هم موجب بالا رفتن مصرف Cpu بشه.
چون در میکروتیک موارد زیادی به اصلاح resource hungry یا اصطلاح کوچه بازاری خودمون منابع خور وجود داره.

سلام فرشید جان.
کاملا حرف شما متین می باشد.
این اسکریپت عموما برای افرادی است که شبکه های کوچک خانگی دارند و مطمئنا برای شرکت ها و یا سازمان های بزرگ عملکردی نحواهد داشت.
در هر صورت برای آشنایی بیشتر کاربران بد نیست نگاهی به نحوه اسکریپت نویسی در میکروتیک بیاندازند و با توجه به گفته ها لطفا در صورتی که شبکه بزرگی دارید به هیچ عنوان از این اسکریپت استفاده نکنید.
 
بالا