MikroTik Scripting AP (Access Point) itur yang memungkinkan pengguna MikroTik RouterOS untuk membuat skrip yang dapat menjalankan berbagai perintah secara otomatis. Skrip ini sangat berguna untuk mengotomatiskan tugas-tugas yang berulang, memanipulasi konfigurasi, dan mengelola router secara lebih efisien.
Bahasa Scripting di RouterOS:
RouterOS memiliki bahasa scripting sendiri yang memungkinkan pengguna untuk mengotomatisasi tugas dan menyesuaikan perilaku router tanpa memerlukan keterampilan pemrograman tingkat lanjut.
Kemudahan Penggunaan:
Pengguna dengan pengetahuan dasar tentang scripting dapat membuat script di RouterOS, mirip dengan scripting dalam bahasa seperti Bash atau Python.
Cara Kerja Scripting di RouterOS
Scripting di Terminal:
Script dapat ditulis langsung di terminal, yang berguna untuk menguji dan menjalankan beberapa perintah secara berurutan.
Menyimpan Script:
Script disimpan di bagian "System Script" di RouterOS untuk manajemen organisasi dan izin.
Struktur Script
Scripting di RouterOS bisa dilakukan dalam beberapa baris, dan nantinya script akan diekseskusi satu demi satu. Struktur scripting pada command line RouterOS seperti berikut :
[prefix] [path] command [uparam] [param=[value]] .. [param=[value]]Keterangan :
[prefix] = “:” atau “/” karakter yang
mengindikasikan bahwa command merupakan ICE (karakter yg mengindikasikan
global command) atau path. Karakter ini, .bisa dibutuhkan, bisa juga
tidak
[path] = Path yang bersifat relatif untuk menentukan menu level. Bisa dibutuhkan, bisa juga tidak
command = Prrintah yang tersedia pada level menu tertentu.
[uparam] = parameter tanpa nama, harus dispesifikasikan terlebih dahulu jika command membutuhkannya.
[params] = Urutan parameter yang sudah dikenal yang memiliki nilai tertentu.
Setiap akhir dari command pasti diakhiri dengan tanda “;” atau dengan baris baru, dan terkadang akhir command tidak butuh keduanya.
Elemen Utama MikroTik Scripting:
1. Variabel
Digunakan untuk menyimpan data sementara yang dapat digunakan dalam skrip.
Secara umum, variabel dalam MikroTik dapat dibagi menjadi dua jenis:
-
Variabel Lokal:
- Didefinisikan di dalam suatu script dan hanya berlaku dalam scope script tersebut.
- Digunakan untuk menyimpan nilai-nilai sementara yang hanya dibutuhkan dalam script tersebut.
- Contoh:
:local count = 0
- Variabel Global:
- Didefinisikan secara global dan dapat diakses dari semua script.
- Sering digunakan untuk menyimpan nilai-nilai konfigurasi yang sering digunakan atau hasil dari suatu proses yang ingin disimpan untuk digunakan nanti.
Contoh:
/system script add name=my_script policy=always source= :global my_variable = "Hello"
Cara Menggunakan Variabel
Mendeklarasikan Variabel:
- Gunakan perintah :local untuk mendeklarasikan variabel lokal.
- Gunakan perintah /system script add dengan parameter policy=always untuk mendeklarasikan variabel global.
Memberikan Nilai:
- Gunakan tanda sama dengan (=) untuk memberikan nilai ke sebuah variabel.
:local my_string = "Ini adalah string"
:local my_number = 10
Mengakses Nilai:
Cukup sebutkan nama variabelnya.
Contoh:
:put $my_string
Keuntungan Menggunakan Variabel
- Meningkatkan Keterbacaan: Membuat script lebih mudah dibaca dan dipahami.
- Meningkatkan Fleksibilitas: Memungkinkan script untuk beradaptasi dengan perubahan kondisi.
- Mempermudah Pengulangan: Memungkinkan nilai yang sama digunakan berulang kali dalam script.
- Membuat Script Lebih Dinamis: Memungkinkan script untuk berinteraksi dengan data yang berubah-ubah.
2. Looping (Perulangan)
Berguna untuk menjalankan perintah berulang-ulang berdasarkan kondisi tertentu.
Looping atau perulangan dalam scripting MikroTik adalah mekanisme yang memungkinkan kita menjalankan satu set perintah secara berulang-ulang hingga suatu kondisi tertentu terpenuhi. Ini sangat berguna untuk mengotomatiskan tugas-tugas yang repetitif, seperti:
- Mengkonfigurasi banyak interface: Mengatur IP address, DNS, dan pengaturan lainnya pada banyak interface sekaligus.
- Memeriksa status klien: Secara berkala memeriksa apakah ada klien baru yang terhubung atau terputus.
- Mengirimkan notifikasi: Mengirimkan email atau SMS secara berkala untuk melaporkan status sistem.
Jenis-Jenis Looping dalam MikroTik
MikroTik menyediakan beberapa jenis loop, antara lain:
1. While Loop
:while (<kondisi>) do={
<perintah>
<perintah>
...
}
Contoh:
:local i = 1
:while ($i <= 5) do={
:put "Perulangan ke-$i"
:local i = ($i + 1)
}
2. For Loop
:for (<variabel> in [<list>]) do={
<perintah>
<perintah>
...
}
Contoh:
:for (i in =collect(1,2,3,4,5)) do={
:put "Perulangan ke-$i"
}
3. Conditional (Kondisional)
Kondisional dalam MikroTik yaitu Mengambil Keputusan dalam Scripting.
Kondisional dalam scripting MikroTik adalah mekanisme yang memungkinkan kita untuk membuat keputusan berdasarkan kondisi tertentu. Dengan kata lain, kita bisa membuat skrip yang dapat "berpikir" dan memilih tindakan yang sesuai berdasarkan situasi yang ada.
Perintah-perintah Kondisional
- if: Melakukan suatu tindakan jika kondisi tertentu terpenuhi.
- else: Melakukan tindakan jika kondisi pada
if
tidak terpenuhi. - while: Melakukan perulangan selama kondisi tertentu bernilai benar.
Penggunaan perintah if
, else
, atau while untuk menentukan alur logika berdasarkan kondisi.
Struktur Dasar
:if (<kondisi>) do={
<perintah jika kondisi benar>
} else={
<perintah jika kondisi salah>
}
Contoh Penggunaan
Untuk Memeriksa Jumlah Klien:
:local client_count = [/tool wireless find count]
:if ($client_count > 100) do={
:put "Jumlah klien melebihi 100"
} else={
:put "Jumlah klien masih aman"
}
Script di atas akan memeriksa jumlah klien yang terhubung. Jika lebih dari 100, maka akan mencetak pesan "Jumlah klien melebihi 100".
Mengatur Interface Berdasarkan Waktu:
:local waktu = :tolower(date)
:if ($waktu contains "malam") do={
/interface set ether1 disable
} else={
/interface set ether1 enable
}
Script ini akan menonaktifkan interface ether1
jika waktu saat ini mengandung kata "malam".
Operator Pembanding
Untuk membuat kondisi dalam perintah if
, kita bisa menggunakan operator pembanding seperti:
- ==: Sama dengan
- !=: Tidak sama dengan
- <: Lebih kecil dari
- >: Lebih besar dari
- <=: Lebih kecil sama dengan
- >=: Lebih besar sama dengan
Contoh dengan Operator Pembanding
:local nilai = 85
:if ($nilai >= 90) do={
:put "Nilai A"
} else if ($nilai >= 80) do={
:put "Nilai B"
} else={
:put "Nilai C"
}
Kegunaan Kondisional
- Pengambilan Keputusan: Memungkinkan skrip untuk memilih tindakan yang sesuai berdasarkan kondisi tertentu.
- Kontrol Aliran Program: Mengatur alur eksekusi skrip.
- Pembuatan Fungsi: Membuat fungsi-fungsi yang lebih kompleks dan fleksibel.
4. Fungsi Built-in
Fungsi built-in adalah potongan kode yang sudah jadi dan siap digunakan. Kita hanya perlu memanggil nama fungsi tersebut dengan parameter yang sesuai untuk menjalankan fungsinya.
MikroTik menyediakan berbagai fungsi yang bisa digunakan dalam skrip, seperti :
put, :
log, dan :execute
.
Contoh Fungsi Built-in yang Umum Digunakan
- :put:
- Fungsi ini digunakan untuk mencetak teks ke layar atau ke log file.
- Contoh:
:put "Hello, world!"
- :log:
- Fungsi ini digunakan untuk menulis pesan ke log sistem MikroTik.
- Contoh:
:log warning "Koneksi ke server terputus"
- :execute:
- Fungsi ini digunakan untuk menjalankan perintah terminal dari dalam skrip.
- Contoh:
:execute "/tool ping count address=8.8.8.8"
- :foreach:
- Fungsi ini digunakan untuk melakukan iterasi pada sebuah list atau array.
- Contoh:
:foreach (i in =collect(1,2,3)) do={ :put $i }
- :if:
- Fungsi ini digunakan untuk membuat keputusan berdasarkan kondisi tertentu. (Sudah dibahas sebelumnya)
- :while:
- Fungsi ini digunakan untuk membuat perulangan selama kondisi tertentu bernilai benar. (Sudah dibahas sebelumnya)
Keuntungan Menggunakan Fungsi Built-in
- Efisiensi: Kita tidak perlu menulis ulang kode yang sama berulang kali.
- Kemudahan: Fungsi-fungsi ini sudah teruji dan siap digunakan.
- Fleksibilitas: Banyak fungsi yang dapat dikombinasikan untuk membuat skrip yang lebih kompleks.
Contoh Penggunaan Fungsi Built-in dalam Skrip
:local interface_list = [/interface print where disabled=no]
:foreach (i in $interface_list) do={
:local interface_name = [/interface get $i name]
:log info "Memeriksa interface: $interface_name"
:execute "/interface ping $interface_name"
}
Script di atas akan:
- Membuat list semua interface yang aktif.
- Melakukan iterasi pada setiap interface.
- Mencetak pesan log untuk setiap interface yang sedang diperiksa.
- Melakukan ping ke setiap interface untuk memeriksa konektivitas.
Fungsi Built-in Lainnya
MikroTik menyediakan banyak fungsi built-in lainnya yang dapat Anda temukan dalam dokumentasi resmi. Beberapa contoh fungsi yang berguna adalah:
- Fungsi untuk memanipulasi string
- Fungsi untuk melakukan perhitungan matematika
- Fungsi untuk mengakses informasi sistem
- Fungsi untuk mengelola konfigurasi
5. Scheduler
Scheduler di MikroTik adalah fitur yang memungkinkan Anda untuk menjalankan skrip secara otomatis pada waktu-waktu tertentu atau setelah interval waktu tertentu. Misalnya, kalian ingin menjadwalkan backup konfigurasi router setiap malam. Ini sangat berguna untuk mengotomatiskan tugas-tugas rutin, seperti:
- Backup konfigurasi: Mencadangkan konfigurasi router secara berkala untuk mencegah kehilangan data penting.
- Restart layanan: Merestart layanan tertentu secara berkala untuk menjaga stabilitas sistem.
- Membersihkan log: Menghapus log yang sudah tidak diperlukan untuk menghemat ruang penyimpanan.
- Mengaktifkan/menonaktifkan interface: Mengatur jadwal aktif/nonaktif interface sesuai kebutuhan.
Cara Kerja Scheduler
Scheduler bekerja dengan cara menjadwalkan eksekusi sebuah skrip. Sebagai contoh isi skrip meliputi:
Fitur-Fitur Utama Scheduler
- Fleksibel: Anda dapat menjadwalkan skrip untuk dijalankan sekali, secara berulang, atau berdasarkan event tertentu.
- Kustomisasi: Anda dapat mengatur waktu mulai, interval, dan skrip yang akan dijalankan sesuai dengan kebutuhan Anda.
- Log: Scheduler akan mencatat hasil eksekusi skrip, sehingga Anda dapat memantau kinerja scheduler.
Contoh Penggunaan Lain Dari Scheduler
- Mengaktifkan/menonaktifkan Wi-Fi: Menonaktifkan Wi-Fi pada malam hari untuk menghemat daya.
- Mengirimkan email notifikasi: Mengirimkan email jika terjadi kesalahan pada sistem.
- Memperbarui daftar DNS: Memperbarui daftar DNS secara berkala.
Referensi
https://mikrotik.iainpare.ac.id/blog/berita-mikrotik-1/scripting-di-routeros-3
https://doexploit.medium.com/pembahasan-mendasar-mikrotik-scripting-43f59be44464
https://candraaditama.wordpress.com/2013/06/30/scripting-di-mikrotik/
https://praktekotodidak.com/bahasa-scripting-routeros-mikrotik/
0 komentar:
Posting Komentar