Welcome to Sysnet Board คู่มือ การใช้งานอุปกรณ์ Network. Please log in or sign up.
สมาชิกทั้งหมด
17,649
กระทู้ทั้งหมด
10,068
หัวข้อทั้งหมด
4,727

  • การตั้ง Scheduler ในอุปกรณ์ Mikrotik เพื่อทำการ Block User ตามช่วงเวลา
    เริ่มโดย yod
    Read 50,237 times
0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้
yod

 

 

การตั้ง Scheduler ในอุปกรณ์ Mikrotik เพื่อทำการ Block User ตามช่วงเวลา



เนื่องจากมีสมาชิกท่านนึงสอบถามเรื่อง Schedule เข้ามา เรื่องการ Block User ไม่ให้เข้าใช้งาน Internet ตามช่วงเวลา

....อยากจะบอกว่า อุปกรณ์ Mikrotik RouterBoard นอกจากให้ไปซื้อโอเลี้ยงแล้ว น่าจะทำได้หมดครับ  ;D ;D ;D



ตัวอย่างจะเป็นการกำหนด User Profile จำนวน 2 กลุ่ม โดยกลุ่ม 1 ให้เข้าใช้งาน Internet (Login เข้าใช้งาน) ได้เวลา 12.00-13.00น. และกลุ่ม 2 ใช้งานได้ 8.00 - 9.00 และ 12.00 - 13.00 น.


1. สร้าง User Profile ขึ้นมา จากตัวอย่างจะชื่อ userprofile1 และ userprofile2






2. สร้าง User โดยกำหนด Profile จากที่สร้างไว้ ตัวอย่าง
User: yod, user1 จะเป็น Profile: userprofile1 และ User: user2 จะเป็น userprofile2








3. Run script ที่ New Terminal โดยผมจะตั้งชื่อ block-user-grp1, block-user-grp1 เพื่อทำการ Disable/Enable userprof1
และ block-user-grp2, nblock-user-grp2 เพื่อทำการ Disable/Enable userprof2

เพิ่ม Script สำหรับ Delete User ที่ Active หลังจาก Disable ครับ


/system script
add name=block-user-grp1 policy=read,write source="/ip hotspot user disable [find profile=userprof1]\r\
   \n:local i\r\
   \n:foreach i in=[ /ip hotspot user find where disabled=yes ] do={\r\
   \n:local name [/ip hotspot user get \$i name]\r\
   \n[ /ip hotspot active remove [find where user=\$user] ]\r\
   \n#:log info \$name\r\
   \n}"
add name=block-user-grp2 policy=read,write source="/ip hotspot user disable [find profile=userprof2]\r\
   \n:local i\r\
   \n:foreach i in=[ /ip hotspot user find where disabled=yes ] do={\r\
   \n:local name [/ip hotspot user get \$i name]\r\
   \n[ /ip hotspot active remove [find where user=\$user] ]\r\
   \n#:log info \$name\r\
   \n}"


เคาะ enter บรรทัดสุดท้ายด้วยนะครับ




3. ทดสอบ Run script ที่ Menu System --> Script จะมีการ Disable/Enable รายชื่อ User ตามที่กำหนด User profile ไว้




4. สร้าง Schedule สำหนับ Run Script ตามเวลาที่ต้องการ
Star-Date ไม่ต้องแก้ไขอะไรครับ ส่วน Start-Time แก้ไขเวลาตามต้องการได้เลยครับ


system scheduler add name=start-unblock-user-grp1 start-date=nov/06/2012 start-time=12:00:00 interval=1d on-event=unblock-user-grp1 policy=read,write
system scheduler add name=start-block-user-grp1 start-date=nov/06/2012 start-time=13:00:00 interval=1d on-event=block-user-grp1 policy=read,write

system scheduler add name=start-unblock-user-grp2-t1 start-date=nov/06/2012 start-time=08:00:00 interval=1d on-event=unblock-user-grp2 policy=read,write
system scheduler add name=start-block-user-grp2-t1 start-date=nov/06/2012 start-time=09:00:00 interval=1d on-event=block-user-grp2 policy=read,write

system scheduler add name=start-unblock-user-grp2-t2 start-date=nov/06/2012 start-time=12:00:00 interval=1d on-event=unblock-user-grp1 policy=read,write
system scheduler add name=start-block-user-grp2-t2 start-date=nov/06/2012 start-time=13:00:00 interval=1d on-event=block-user-grp1 policy=read,write





ตรวจสอบ Scheduler ที่ Menu --> System --> Scheduler





เรียบร้อยครับ  :D

สามารถใช้หลักการ Scheduler ร่วมกับ Function อื่นๆใน Mikrotik ที่สามารถ Ebable/Disable ได้ทุกๆ Function เลยครับ

ผมลองดูแล้ว พอครบกำหนด user จะถูก disable แต่ user ยังสามารถเล่นเน็ตต่อไปได้ ซึ่งผมจะทำยังไงให้พอครบเวลาที่กำหนดเช่นเล่นได้ 12.00-13.00 แล้วมันตัด user ออกไปทำให้เล่นเน็ตไม่ได้

yod




เพิ่งเห็นครับ

เมื่อกี้ผมได้ลองเขียน Script เพิ่มขึ้นมาใหม่คร่าวๆครับ จะเป็นการ Remove User ที่ Active อยู่ แต่ได้ถูก Disable ไป

:global i
:foreach i in=[ /ip hotspot user find where disabled=yes ] do={
:local name [/ip hotspot user get $i name]
[ /ip hotspot active remove [find where user=$user] ]
#:log info $name
}

เดี๋ยวพรุ่งนี้มาเรียบเรียงให้อีกทีครับ  ;D ;D

ขอบคุณครับ มายืนยันว่าใช้แล้วได้ผลตามที่ต้องการครับ คุณยอด

yod


แก้ไข script เรียบร้อยแล้วครับ ทางผมต้องขอโทษที่ไม่ได้ทดสอบให้ละเอียดครับ  :-\

ผมอ่านแล้ว เห็นว่าพอจะใช้ได้กับ site งานผม ขอถามเพิ่มเติมนะครับ

ผมมีร้านกาแฟ เปิดบริการ 8.00-18.00

ต้องการให้ 1 user เข้าใช้พร้อมกันได้หลาย ๆ เครื่อง แต่กำหนดเวลาการเข้าใช้

user ละ 2 ชม. เดิมที่ผมทำใน userman แต่ต้องมาเคลียร์เวลาทุกวัน

เห็นวิธีนี้แล้วน่าสนใจรบกวนสอบถามสคลิปหน่อยครับต้องแก้และเพิ่มเติมส่วนไหนบ้าง

การตั้งให้ use ใช้ facebook บล็อคตามช่วงเวลาที่เรากำหนดทำอย่างไรครับ
เช่น
facebook เวลา 09.00-13.30  และ 13.30-15.30
แต่และเสาร์-อาทิตย์ใช้ได้ตลอด

ตัังวันที่ทำงานโดยเข้าไปที่ firewall rule > extra > time เลือก ติ๊กถูกที่วันที่จะให้ script ทำงานครับ

ทำไหมผมทำแล้วมันพอถึงเวลาunblock มันไม่ unblock แต่เวลา block ปกติครับ

yod


ลองทดสอบสั่ง run ใน script list หรือยังครับ ถ้า run ผ่าน ลองดูในส่วน schedule ครับ ว่าพิมพ์อะไรผิดหรือเปล่า