磁盤配額可以為個體用戶配置也可以為用戶組配置。這種靈活性既能夠給每個用戶分配一個較小的配額來處理“個人”文件(如電子郵件和報告),又使他們正從事的項目能夠擁有較大的配額(假定項目有自己的組群)。
除此以外,配額不僅能夠被設置成對所用磁盤塊數量的控制,還能夠被設置成對內節點數量的控制。由于內節點包含文件相關的信息,對內節點的控制能夠控制可被創建的文件數量。
要實現磁盤配額,quota RPM 必須在系統上被安裝。
你可以通過實現磁盤配額來限制磁盤空間,因此當用戶使用了過多的磁盤空間或分區將要充滿時,系統管理員就會接到警告。
磁盤配額可以為個體用戶配置也可以為用戶組配置。這種靈活性既能夠給每個用戶分配一個較小的配額來處理“個人”文件(如電子郵件和報告),又使他們正從事的項目能夠擁有較大的配額(假定項目有自己的組群)。
除此以外,配額不僅能夠被設置成對所用磁盤塊數量的控制,還能夠被設置成對內節點數量的控制。由于內節點包含文件相關的信息,對內節點的控制能夠控制可被創建的文件數量。
要實現磁盤配額,quota RPM 必須在系統上被安裝。 關于安裝 RPM 軟件包的詳情,請參閱Linux%203\紅帽企業%20Linux%203%20系統管理指南.chm::/pt-pkg-management.html">第 III 部分。
要實現磁盤配額,請使用以下步驟:
修改 /etc/fstab 來啟用每個文件系統的配額
重新掛載文件系統
創建配額文件,重新生成磁盤用量表
分配配額
以上步驟在下面各節中被詳細討論。
以根用戶身份使用一個文本編輯器來編輯 /etc/fstab 文件,給需要配額的文件系統添加 usrquota 和(或)grpquota 選項:
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 |
在上面的例子中,/home 文件系統上啟用了用戶和組群配額。
添加了 userquota 和 grpquota 選項后,重新掛載每個 fstab 條目被修改的文件系統。如果某文件系統沒有被任何進程使用,使用 umount 命令后再緊跟著 mount 命令來重新掛載這個文件系統。如果某文件系統正在被使用,要重新掛載該文件系統的最簡捷方法是重新引導系統。
重新掛載了每個啟用了配額的文件系統后,系統現在就能夠使用磁盤配額了。不過,文件系統本身尚且不能支持配額。下一步是運行 quotacheck 命令。
quotacheck 命令檢查啟用了配額的文件系統,并為每個文件系統建立一個當前磁盤用量表。該表會被用來更新操作系統的磁盤用量文件。此外,文件系統的磁盤配額文件也被更新。
要在文件系統上創建配額文件(aquota.user 和 aquota.group),使用 quotacheck 命令的 -c 選項。例如,如果用戶和組群配額都為 /home 分區啟用了,在 /home 目錄下創建這些文件:
quotacheck -acug /home |
-a 選項意味著在 /etc/mtab 中所有掛載了的非 NFS 文件系統都會被檢查來決定是否啟用了配額。-c 選項指定每個啟用了配額的文件系統都應該創建配額文件,-u 選項指定檢查用戶配額,-g 選項指定檢查組群配額。
如果 -u 或 -g 選項被指定,只有用戶配額文件被創建。如果只指定了 -g 選項,只有組群配額文件會被創建。
文件被創建后,運行以下命令來生成每個啟用了配額的文件系統的當前磁盤用量表:
quotacheck -avug |
所用選項如下:
a — 檢查所有啟用了配額的在本地掛載的文件系統
v — 在檢查配額過程中顯示詳細的狀態信息
u — 檢查用戶磁盤配額信息
g — 檢查組群磁盤配額信息
quotacheck 運行完畢后,和啟用配額(用戶和/或組群)相應的配額文件中就會寫入用于每個啟用了配額的文件系統(如 /home)的數據。
最后一步是使用 edquota 命令分配磁盤配額。
要為用戶配置配額,以根用戶身份在 shell 提示下執行以下命令:
edquota username |
為每個你想實現配額的用戶執行該步驟。例如,如果在 /etc/fstab 中為 /home 分區(/dev/hda3)啟用了配額,執行了 edquota testuser 命令后,系統默認的編輯器中就會有如下顯示:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda3 440436 0 0 37418 0 0 |
![]() | 注記 |
---|---|
edquota 使用 EDITOR 環境變量所定義的文本編輯器。要改變這個編輯器,把 EDITOR 環境變量設置為到你選中的編輯器的完整路徑。 |
第一列是啟用了配額的文件系統的名稱。第二列顯示了用戶當前使用的塊數。隨后的兩列用來設置用戶在該文件系統上的軟硬塊限度。inodes 列顯示了用戶當前使用的內節點數量。最后兩列用來設置用戶在該文件系統上的軟硬內節點限度。
硬限是用戶或組群可以使用的磁盤空間的絕對最大值。達到了該限度后,磁盤空間就不能再被用戶或組群使用了。
軟限定義可被使用的最大磁盤空間量。和硬限不同的是,軟限可以在一段時期內被超過。這段時期被稱為過渡期(grace period)。過渡期可以用秒鐘、分鐘、小時、天數、周數、或月數表示。
如果以上值中的任何一個被設置為 0,那個限度就不會被設置。在文本編輯器中,改變想要的限度。如:
Disk quotas for user testuser (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda3 440436 500000 550000 37418 0 0 |
要校驗用戶的配額是否被設置,使用以下命令:
quota testuser |
配額還可以根據組群來分配。例如,要為 devel 組群設置組群配額,使用以下命令(在設置組群配額前,該組群必須存在):
edquota -g devel |
以上命令在文本編輯器中顯示當前的組群配額:
Disk quotas for group devel (gid 505): Filesystem blocks soft hard inodes soft hard /dev/hda3 440400 0 0 37418 0 0 |
修改限度,保存文件,然后配置配額。
要校驗組群配額是否被設置,使用以下命令:
quota -g devel |
要根據每個啟用了組群的文件系統來分配配額,使用以下命令:
edquota -t |
和另一個 edquota 命令相似,這個命令也會在文本編輯器中打開當前的文件系統配額:
Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hda3 7days 7days |
改變塊過渡期或內節點過渡期,保存對文件的改變,然后退出文本編輯器。
如果配額被實現,它們就需要被維護 — 主要維護方式是觀察。查看配額是否被超出并確保配額的正確性。當然,如果用戶屢次超出他們的配額或者持續地達到他們的軟限,系統管理員就可以根據用戶類型和磁盤空間對他們工作的影響來做出幾種決策。管理員可以幫助用戶決定對磁盤空間的使用,也可以按需要增加用戶的配額。
創建磁盤用量報告需要運行 repquota 工具。例如,repquota /home 命令會生成以下輸出:
*** Report for user quotas on device /dev/hda3 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 4 0 0 tfox -- 540 0 0 125 0 0 testuser -- 440400 500000 550000 37418 0 0 |
要查看所有啟用了配額的文件系統的磁盤用量,使用以下命令:
repquota -a |
這份報告雖然看起來很簡單,有幾點仍需要做一下說明。顯示在每個用戶后面的 -- 是一種判斷用戶是否超出其塊限度或內節點限度的快速方法。如果任何一個軟限被超出,相應的 - 行就會被 + 代替;第一個 - 代表塊限度,第二個代表內節點限度。
grace 列通常是空白。如果某個軟限被超出,這一列就會包含過渡期中的剩余時間。如果過渡期已超過了,其中就會顯示 none。
當某文件系統沒有被完整地卸載(如,由于系統崩潰),這就有必要運行 quotacheck。不過,即便系統沒有崩潰,quotacheck 也可以被定期經常運行。定期運行以下命令來保持配額的正確性(所用選項在第 6.1.1 節中被描述):
quotacheck -avug |
要定期運行它的最簡單方法是使用 cron。作為根用戶,你既可以使用 crontab -e 命令來調度定期的 quotacheck,也可以在以下目錄之一內放置一個運行 quotacheck 的腳本(使用最適合你需要的間隔期間):
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
最精確的配額統計數據可以在所分析的文件系統沒有被活躍使用時獲得。因此,cron 任務應該在文件系統被最少使用時調度。如果這一時間在使用配額的文件系統中并不統一,則使用多個 cron 任務在不同的時間為每個文件系統運行 quotacheck。
請參考第37章 來獲取關于配置 cron 的詳情。
原文轉自:http://www.anti-gravitydesign.com