Home | Back
การกำหนด quota ใน debian
Saturday, 7 April 2007
ในการใช้งาน Linux แบบมีผู้ใช้หลาย ๆ คนนั้น ผู้ดูแลระบบมักจะเจอกับปัญหาการใช้เนื้อที่ฮาร์ดดิสก์ของผู้ใช้แต่ละคนแบบไม่บันยะบันยัง คือเอาอะไรต่อมิอะไรมายัดไว้ในระบบ เช่น ไฟล์หนัง หรือไปโหลดพวกเกมส์ขนาดยักษ์ ๆ มาใส่ไว้แล้วไม่ยอมลบ ทำให้เนื้อที่ของระบบมีการใช้งานที่ไม่คุ้มค่า ในระบบ Linux นั้น เราสามารถกำหนด quota (โควต้า) ในการใช้เนื้อที่ของฮาร์ดดิสก์ของผู้ใช้แต่ละคน หรือแต่ละกลุ่มได้ ผมเองได้ไปค้นหาวิธีการใช้งาน quota ในระบบ Debian มาลง แต่ก็เชื่อว่าน่าจะใช้ได้กับ Ubuntu ด้วยเหมือนกัน เอาล่ะ มาเริ่มกัน
เริ่มจากทำการลง package ที่ใช้ทำ quota ก่อนด้วยคำสั่ง
$ apt-get install quota quotatool
ต่อไปก็ทำการแก้ไฟล์ระบบที่ชื่อว่า /etc/fstab ซึ่งเป็นไฟล์ที่กำหนด การ mount พาติชั่นต่าง ๆ ของฮาร์ดดิสก์กับระบบของ Linux โดย ถ้าเราต้องกำหนด quota กับพาติชั่นใด ก็แก้เฉพาะพาติชั่นนั้น
File : /etc/fstab
# /etc/fstab: static file system information. # #/dev/hdb2 / ext2 errors=remount-ro 0 1 /dev/hdb1 none swap sw 0 0 /dev/hdb3 /home ext2 defaults,usrquota,grpquota 0 1
จากข้างบนส่วนที่เป็นสีแดงคือส่วนที่เราเพิ่มเข้าไป โดยในที่นี้เราจะกำหนด quota ให้กับ /home นั่นเอง ต่อไปเราก็ทำการสร้างไฟล์ของระบบ quota ของ /home ดังนี้
$ touch /home/aquota.user $ touch /home/aquota.group $ chmod 600 /home/aquota.user /home/aquota.group
จากนั้นเราก็รีบูตเครื่องใหม่ หรือถ้าไม่ต้องการรีบูตเครื่องใหม่ก็ต้องทำการ remount พาติชั่นใหม่และสั่งให้ระบบ quota ทำงาน
$ mount -o remount,usrquota /home $ quotacheck -vagum
หลังจากนี้เราก็สามารถกำหนด quota ได้แล้วครับ เช่น ถ้าเราต้องการกำหนด quota ให้กับผู้ใช้ชื่อ sky โดยมี soft limit ที่ 1000 blocks และ hard limit ที่ 1200 blocks เราสามารถทำได้ด้วยคำสั่งดังนี้
$ quotatool -u sky -bq 1000 -l 1200 /home
โดย soft limit จะหมายถึงขอบเขตที่อนุญาตให้ชั่วคราว 7 วันและ hard limit หมายถึงขอบเขตที่ไม่สามารถผ่านไปได้ครับ และถ้าหากเราต้องการดูการใช้ quota ทั้งหมดเราสามารถดูได้ด้วยคำสั่ง
$ repquota /home
เอาล่ะครับ ลองทำดูละกัน :)