ใน Linux และ Unix ทั้งหลาย โปรแกรมที่จะใช้ในการทำ print server มีชื่อว่า CUPS ซึ่งข้อเสียของ CUPS นี้คือไม่สามารถ set quota รายบุคลลได้ แต่เราสามารถประยุกต์ใช้ feature allow/deny ในรายบุคคลและกลุ่มได้ ซึ่งมันก็จะสามารถทำงานได้คล้ายๆกับการใช้ quota แต่ความแม่นยำในการนับจำนวนหน้าสำหรับ client ที่เป็น windows อาจจะไม่แม่นยำมากนัก เนื่องจากปัญหาด้านการสื่อสารระหว่าง windows client กับ CUPS

วิธีการ set quota ให้กับ CUPS (print server)

วิธีการนี้จะเป็นการบังคับให้ทุกคนใช้งานตามที่กำหนดไว้ โดยจะใช้คำสั่ง lpadmin โดยใช้ option job-quota-period สำหรับกำหนดช่วงเวลา หน่วยเป็นวินาที (1 วัน = 86400), option job-k-limit สำหรับกำหนดขนาดของข้อมูลรวม หน่วยเป็น KBytes และ option job-page-limit กำหนดจำนวนหน้ารวม

ต้องการ set quota ให้กับ printer1 ให้สามารถ print ข้อมูลรวมได้มากที่สุด 5 MB ภายในเวลา 1 วัน

# lpadmin -p printer1 -o job-quota-period=86400 -o job-k-limit=5120

ต้องการ set quota  ให้กับ printer2 ให้สามารถ print จำนวนหน้าได้มากที่สุด 200 หน้า ภายในเวลา 1 ซัน

# lpadmin -p printer2 -o job-quota-period=604800 -o job-page-limit=200

วิธีการ set user quota ให้กับ CUPS (print server)

วิธีการนี้เป็นการ set user quota ให้รายบุคคลโดยมี option ที่เพิ่มเติมจากข้างบนคือ

-E คือการ enable printer

-v smb://server/printer คือ การระบุวิธีการแชร์ printer ในที่นี้คือการแชร์ printer ผ่าน samba

-u deny:all,all คือ การ deny ทุก user และทุก group

-u allow:tum,tum คือ การอนุญาติเฉพาะ user tum และ group tum

ตัวอย่าง จะ set quota ที่ printer3 ให้ user tum ให้สามารถ print ได้ผ่าน samba protocol จำนวนหน้ามากที่สุด 10 หน้า ภายในเวลา 1 วัน

# lpadmin -p printer3 -E -v smb://server/printer -u deny:all,all -u allow:tum,tum -o job-quota-period=86400 -o job-page-limit=10

One thought on “Set up Quota Limits per User on CUPS Print Server”
  1. I appreciate it. For the very good to create next thanks to the generosity here. I have good technique from here, though. Thanks. This is really useful.

Comments are closed.