Script mengaktifkan user hotspot sesuai jadwal harian pada mikrotik

Ketemu lagi niiiii, penulis akan membagikan tutorial dan script yang digunakan berdasarkan pengalaman pribadi si penulis kasusnya si pelanggan punya beberapa user hotspot sedangkan si pelanggan pengen setiap user bisa dipakai berdasarkan hari tertentu akhirnya setelah otak atik dan mencari tutorial di berbagai sumber akhirnya penulis menemukan script yang work it, langsung saja ke tutorial.

Hal pertama Pastikan pengaturan waktu pada router mikrotik sudah sesuai dengan waktu wilayah anda hal ini mutlak diperlukan ketika anda sudah implementasikan rule-rule berdasarkan waktu misalnya dalam case ini penggunaan scheduler

Pengaturan waktu pada router mikrotik memiliki alternatif lain yaitu menggunakan service NTP (Network Time Protocol) yang memungkinkan router bisa melakukan sinkronisasi waktu, untuk case ini router kita akan jadikan NTP Client, pengaturan sntp client pada router mikrotik bisa dilakukan pada menu System > SNTP Client.

SNTP Client

Setelah pengaturan sntp selesai dan waktu router mikrotik sudah sesuai sekarang kita akan membuat scheduler untuk menambahkan script.
Untuk penjadwalan kita bisa konfigurasi pada menu System > Scheduler lalu klik icon "+"  untuk membuat schedule baru. Berikut nama misalnya "Aktif User", waktu eksekusi script setiap jam 1 malam dan interval waktu setiap 1 hari, untuk kolom On Event masukkan script yang sudah disediakan dibawah.

Selanjutnya kita buatkan user hotspot di menu Ip > Hotspot, pada halaman hotspot pilih tab users  lalu klik icon "+"  untuk membuat User baru dan jangan lupa untuk menambahkan comment pada masing" user hal ini dikarenakan sebagai kunci pada script untuk melakukan disable atau enable user seperti pada gambar dibawah.

Untuk melakukan mengujian sesuaikan dengan waktu yang sudah disetting pada kolom Start Time.


Berikut penulis sertakan Script nya





:local date [/system clock get date]

# Math Calculation here
:local result ""
:local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"]
:local daytbl [:toarray "sun,mon,tue,wed,thu,fri,sat"]

:local month [:pick $date 0 3]
:local day [:pick $date 4 6]
:local dayc [:pick $date 5 6]
:local year [:pick $date 7 11]

# if the first char is a 0 (zero) only read last char, else script fails
:if ([:pick $date 4 5] = 0) do={ :set day ($dayc)}

:local sum 0
:local aaa 0
:local yyy 0
:local mmm 0
:local nmonth 1

:for mindex from=0 to=[:len $months] do={
  :if ([:pick $months $mindex] = $month) do={:set nmonth ($mindex + 1) }
}

:set aaa ((14 - $nmonth) / 12)
:set yyy ($year - $aaa)
:set mmm ($nmonth + 12 * $aaa - 2)
:set sum (7000 + $day + $yyy + ($yyy / 4) - ($yyy / 100) + ($yyy / 400) + ((31 * $mmm) / 12))
:set sum ($sum - (($sum / 7) * 7))
:set result [:pick $daytbl $sum]

:if ($result = "mon") do={/ip hotspot user set disable=no [find comment=Senin]} else= {/ip hotspot user set disable=yes [find comment=Senin]}
:if ($result = "tue") do={/ip hotspot user set disable=no [find comment=Selasa]} else= {/ip hotspot user set disable=yes [find comment=Selasa]}
:if ($result = "wed") do={/ip hotspot user set disable=no [find comment=Rabu]} else= {/ip hotspot user set disable=yes [find comment=Rabu]}
:if ($result = "thu") do={/ip hotspot user set disable=no [find comment=Kamis]} else= {/ip hotspot user set disable=yes [find comment=Kamis]}
:if ($result = "fri") do={/ip hotspot user set disable=no [find comment=Jumat]} else= {/ip hotspot user set disable=yes [find comment=Jumat]}
:if ($result = "sat") do={/ip hotspot user set disable=no [find comment=Sabtu]} else= {/ip hotspot user set disable=yes [find comment=Sabtu]}
:if ($result = "sun") do={/ip hotspot user set disable=no [find comment=Ahad]} else= {/ip hotspot user set disable=yes [find comment=Ahad]}

0 komentar:

Post a Comment

Informasi:
Form komentar ini menggunakan moderasi, setiap komentar yang masuk akan melalui proses pemeriksaan sebelum ditampilkan dalam kolom komentar.

Memasang link dan konten yang mengandung pornografi di komentar tidak akan di tampilkan. Hanya komentar yang membangun dan sesuai topik artikel saja yang akan kami tampilkan.

Mohon maaf atas ketidaknyamanannya.