מדריך זה נכתב על ידי jaxler בתאריך 2002-08-01
המדריך הומר לתסדיר דוקוויקי על ידי DoK בתאריך 2007-05-02
המכסות (quota) נועדו להגביל את כמות הדיסק המותרת לשימוש למשתמש או קבוצה מסוימת ההגבלה יכולה להיות בשני מישורים, הגבלת הבלוקים או הגבלת כמות הinodes המותרים לשימוש. במערכות גדולות עם הרבה משתמשים מומלץ להגביל כל משתמש לכמות דיסק מסוימת וכך להמנע משימוש מיותר בשטח הדיסק.
מדריך זה עובר על התקנת המכסות במערכת, הפעלתם וניהול המכסות בפועל. המדריך נועד לי שלא מכיר את המערכת מכסות, ומעונין להגביל את כמות הדיסק המותרת לשימוש על ידי המשתמשים השונים במערכת.
כל הזכויות שמורות © 2002 ל-jaxler
הרשות נתונה בזאת להעתיק, להפיץ ו/או לשנות את המסמך הזה, תחת תנאי רשיון ה-GFDL גרסה 1.1 או כל גרסה מאוחרת יותר שתפורסם ע”י המוסד לתוכנה חופשית.
השימוש במדריך מותר לשימוש לא מסחרי. העתקתו / הפצתו מחדש, מותרת בצירוף זכויות היוצרים ובהתאם למפורט ברשיון ה GFDL.
רישיון ה-GFDL זמין כאן: http://www.gnu.org/copyleft/fdl.html
ברוב ההפצות החדשות התמיכה במכסות מקומפלת עם הקרנל ואין צורך להתקין אותה, גם הכלים לניהול המכסות מותקנים עם ההפצות לרוב בכדי לבדוק אם הכלים מותקנים במערכת שלך הרץ:
rpm -qu | grep quota
במקרה והמערכת שלך לא תומכת במכסות יש צורך לקמפל את הקרנל שיתמוך בהם. הורד את הטלאי המתאים לגרסת הקרנל שלך מהכתובת ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota
בזמן קימפול הקרנל תחת התפריט filesystems בחר y באפשרות:
<code>quota support (config_quota) [n]</code>
אחרי הוספת התמיכה במכסות לקרנל הורד והתקן את חבילת התוכנות לניהול המכסות מהכתובת: http://sourceforge.net/projects/linuxqupta
לבסוף יש להפעיל מחדש את המחשב בכדי שהשינוים יכנסו לתוקף. אם אתה לא יודע לקמפל את הקרנל והמכסות לא באות עם ההפצה שלך ראה את השאלות הנפוצות בסוף המדריך
בכדי שהמכסות יעבדו צריך להכין את מערכת הקבצים לעבוד איתם, אנו עושים זאת על ידי עריכת הקובץ etc/fstab/ לפני הוספת התמיכה במכסות הקובץ נראה בערך ככה:
/dev/hda2 /boot ext2 defaults 1 2 /dev/hda7 / ext2 defaults 1 1 /dev/hda9 /home ext2 defaults 1 1
בשביל להפעיל את המכסות על מחיצה ה-home נשנה את השורה
/dev/hda9 /home ext2 defaults 1 1
ונוסיף לה usrquota בשביל מכסות משתמש או grpquota בשביל מכסות קבוצה אפשר להוסיף את שניהם על ידי הפרדה בפסיק. עכשיו אם הוספנו מכסות משתמש הקובץ יראה כך:
/dev/hda9 /home ext2 defaults,usrquota 1 1
ובשביל מכסות קבוצה נשנה אותו שיראה כך:
/dev/hda9 /home ext2 defaults,grpquota 1 1
אם נרצה את שניהם נשנה את הקובץ שיראה כך:
/dev/hda9 /home ext2 defaults,usrquota,grpquota 1 1
שימו לב שההוספה נעשית אחרי השדה defaults ומופרד בפסיק. ועוד דבר שחשוב לציין, הקובץ etc/fstab/ שונה ממחשב למחשב ולפי סידור המחיצות שלך בהתקנה ולכן הוא אינו זהה לזה שבדוגמה
עכשיו שסימנו להגדיר את המערכת קבצים לתמוך במכסות נריץ את הפקודה:
quotacheck -avug
בכדי שתייצר את הקבצים הדרושים לעבודת עם המכסות
אנחנו רוצים שבהפעלה של המחשב המערכת תפעיל את המכסות ותבדוק אם אף אחד לא חרג מההגבלה שלו. בחלק מההפצות הבדיקה כבר כלולה בסקריפט של init ואין צורך להוסיף אותה. אפשר להוסיף תהליך זה ידני על ידי הוספת הסקריפט הנל ל-init שלך:
# Check quota and then turn quota on. if [ -x /usr/sbin/quotacheck ] then echo "Checking quotas. This may take some time." /usr/sbin/quotacheck -avug echo " Done." fi if [ -x /usr/sbin/quotaon ] then echo "Turning on quota." /usr/sbin/quotaon -avug fi
חשוב שהסקריפט יתבצע רק אחרי שהמערכת קבצים ב etc/fstab/ הועלתה (mounted) אחרת הסקריפט לא יעבוד.
התקופת חסד נועדה לפעול במקרה ומשתמש עבר את ההגבלה שלו, הזמן שנקבע כתקופת החסד הוא הזמן שיש למשתמש לפנות מקום ולחזור לגבולת ההגבלה שנקבע לו
ההגבלה הרכה קובעת את כמות הדיסק שניתן לנצל, אם עברת את ההגבלה ה”תקופת חסד” נכנסת לפעולה ותקופת הזמן שנקבע כתקופת החסד היא הזמן שיש לך לחסור לגבולות המכסה שלך.
[test@ajaxler]$ quota Disk quotas for user test (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 56 500 1000 14 0 0
בפלט אפשר לראות שמשתמש test מכניס את הפקודה quota לראות כמה מקום נשאר לו/ השדה quota עומד על 500 וזה ההגבלה הרכה שלו. אפשר גם לראות שאין הגבלה על ה-inodes והמכסה שווה לאפס (לא מוגבל)
ההגלבה הקשיחה מגבילה את כמות הדיסק המקסימלית שהמשתמש יכול לצרוך, במקרה והמשתמש עבר את ההגלה הרכה גם בזמן החסד הוא לא יוכל לעבור את מכסת ההגבלה הקשיחה.
[test@ajaxler]$ quota Disk quotas for user test (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 56 500 1000 14 0 0
בפלט אפשר לראות שמשתמש test מכניס את הפקודה quota לראות כמה מקום נשאר לו. השדה limit עומד על 1000 וזה ההגלבה הקשיחה שלו.
הפקודה ללא דגלים בודקת את המגבלה של המשתמש ומציגה אותה:
[test@ajaxler]$ quota Disk quotas for user test (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 56 500 1000 14 0 0
אם ננתח את מה שאנחנו רואים:
quota -g testgrp
quota -u jaxler
יראה את המכסות של המשתמש jaxler
הפקודה מפעילה את המכסות ולרוב מומלץ להריץ אותה בהפעלה של המערכת.
הפקודה מכבה את המכסות בכל מערכות הקבצים שהוגדרו לתמוך במכסות.הפקודה דומה מאוד ל- quotaon והדגלים זהים.
הפקודה סורקת את מערכות הקבצים ומעדכנת את קבצי המידע של המכסות במידע האחרון על השימוש בדיסק. ברוב המערכות מומלץ להריץ את הפקודה בהפעלה של המחשב.
אחרי שהפעלנו את התמיכה במכסות נשאר לנו להגדיר את המכסות למשתמשים או לקבוצות, הפקודה הזו נועדה לעשות בדיוק את זה. בשביל לקבוע מכסה למשתמש מסוים אנו נריץ:
edquota -u username
זה יקח אותו לעורך הטקסט ונקבל את הטקסט הבא:
Disk quotas for user test (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda3 52 500 1000 14 0 0
אנו יכולים לראות כאן שהמשתמש test משתמש ב 52 בלוקים שההגבלה הרכה שלו היא 500 וההגבלה הקשיחה שלו היא 1000. שני האפסים בסוף הם ההגבלה על ה inodes וכאשר הערך הוא 0 המשתמש לא מוגבל. בשביל להגביל קבוצה שלמה נשתמש בדגל -g:
edquota -g grupname
שוב פקודה זו תכניס אותנו לעורך טקסט ונקבל פלט דומה לזה של קביעת מכסה למשתמש. אם נרצה להגדיר אותם הגדרות לקבוצת משתמשים אפשר לעשות את זה על ידי הדגל -p:
edquota -p jaxler user1user2user3
כדי לשים לב שהמשתמשים user1 user2 user3 נכתבים בלי רווח ומקבלים את ההגדרות מכסה שלהם מהמשתמש jaxler
הפקודה מסכמת את המכסות של כל המשתמשים במערכת. הפלט שלה נראה בערך כך:
User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 4129872 0 0 251337 0 0 amanda -- 860 0 0 56 0 0 nobody -- 4 0 0 1 0 0 bin -- 34292 0 0 1779 0 0 netdump -- 16 0 0 5 0 0 daemon -- 8 0 0 3 0 0 test -- 52 500 1000 13 0 0
Statistics: Total blocks: 8 Data blocks: 2 Entries: 31 Used average: 15.500000
אם יש קבוצה או שם משתמש ארוך יותר מ9 תווים הדגל -t יציג את הפלט בצורה נוחה יותר
quotaon: using //aquota.group on /dev/hda2: Invalid argument
בשביל לפתור את הבעיה צריך לייצר את הקבצים על ידי הפקודה
quotacheck -avug
במקרים מסוימים נצטרך גם להוסיף את הדגל -m
$ ./configure $ make $ su # make install