اسکریپت نویسی در میکروتیک (بخش اول) - مقدمات و آشنایی
توسط
- 2014-02-18 - 07:38 PM (بازدید: 8694)
|
اسکریپت (script) نویسی در میکروتیک را می توان اجراء چندین دستور (command) و یا ترکیب دستورات با متغیر ها و ذخیره و استفاده در مواقع مورد نیاز تعریف کرد.
هر اسکریپت میکروتیک در حالت کلی به سه طریق قابل اجرا است:
1. توسط رویدادها (events) :
در این حالت اسکریپت با اتفاق افتادن رویداد مورد نظرمان توسط یکی از ابزار scheduler یا netwatch اجرا می شود.
بعنوان مثال فرض می کنیم قصد داریم کاربرانمان در طول روز پهنای باند 2mbps داشته باشند و شب 1mbps. اینکار توسط ابزار scheduler و استفاده از اسکریپت مربوطه به راحتی قابل انجام است.
یا اگر بخواهیم با timeout شدن پینگ یک dns server یک dns server دیگر بطور اتوماتیک جایگزین شود. برای اینکار ابزار netwatch طراحی شده است.
2. توسط اسکریپت های دیگر:
در RouterOS میکروتیک می توانیم در قسمت system > scripts اسکریپت هایی آماده کنیم. این اسکریپت ها می توانند توسط اسکریپت های دیگر فراخوانی شوند.
3. بصورت دستی (manually):
می توانیم اسکریپت را بصورت دستی داخل console میکروتیک و یا از طریق terminal اجرا کنیم.
در بخش های بعد هرکدام از موارد بالا را بطور کامل بررسی می کنیم.
مثال) یک اسکریپت ساده:
1. console یا terminal میکروتیک را اجرا کنید.
2. اسکریپت زیر را وارد کنید:
3. با اجرا اسکریپت بالا عبارت persiannetworks را در خروجی مشاهده می کنید.کد::local a "persiannetworks"; :put $a;
اسکریپت بالا از دو دستور تشکیل شده است:
- دستور اول
کد::local a "persiannetworks";- دستور دوم
کد::put $a;
متوجه می شویم که:
- هر دستور (command) در یک اسکریپت با علامت < ; > تمام می شود.
- هر دستور یک پیشوند (prefix) دارد، در اینجا هر دو دستور پیشوند < : > داشتند.
- دستور اول تعریف متغیر a با مقدار persiannetworks است.
- دستور دوم فراخوانی متغیر a می باشد. پس برای فراخوانی متغیر از علامت $ پشت نام متغیر استفاده می کنیم.
- دستور local برای تعریف متغیر محلی و دستور put برای نمایش یا ارسال به خروجی می باشد.
- برای مقدار دادن به متغیر رشته ای (string) از " " یا double auotation استفاده می کنیم. (بدون " " هم متغیر مقدار می گیرد اما برای اسکریپت های پیچیده تر پیشنهاد نمی شود)
مثال) یک اسکریپت ساده دیگر:
کد::local a 3; :local b 2; :put ($a+$b);
- این اسکریپت دو متغیر a و b را با مقادیر 3 و 2 تعریف میکند و توسط دستور put جمع آنها را به خروجی ارسال میکند.
- برای مقدار دادن به متغیر عددی نیازی به " " نیست.
مثال) اسکریپت زیر را اجرا کنید:
نکته: اگر اسکریپت یک دستور دارد، لزومی به استفاده از کاراکتر ; نیست.کد::put "salam"
مثال) اسکریپت زیر را اجرا کنید:
کد::put [:len [/ip route find]];
- اسکریپت بالا تعداد route های موجود در روتر را نمایش می دهد.
- برای دستورات تو در تو از [ ] استفاده می کنیم.
نکته: بعد از دستورات مانند put , len و ... حتما بایستی حداقل یک کاراکتر space وجود داشته باشد.
تا اینجا با تعاریف اولیه و مقدمات ابتدایی اسکریپت نویسی در RouterOS میکروتیک آشنا شدیم. در بخش های بعدی با جزییات و موارد پیشرفته اسکریپت نویسی آشنا می شویم.
موفق باشید.