除了監視系統上使用的磁盤空間,你還可以通過實現磁盤配額來限制磁盤空間,因此當用戶使用了過多的磁盤空間或分區將要充滿時,系統管理員就會接到警告。
磁盤配額可以為個體用戶配置也可以為用戶組配置。這種靈活性既能夠給每個用戶分配一個較小的配額來處理“個人”文件(如電子郵件和報告),又允許了他們正從事的項目能夠擁有較大的配額(假定項目有自己的組群)。
除此以外,配額不僅能夠被設置成對所用磁盤塊數量的控制,還能夠被設置成對內節點數量的控制。由於內節點包含文件相關的信息,對內節點的控制能夠控制可被創建的文件數量。
要實現磁盤配額, quota RPM 必須在系統上被安裝。 關於安裝 RPM 軟件包的詳情,請參閱 第 V 部分 。
6.1. 配置磁盤配額要實現磁盤配額,請使用以下步驟:
修改 /etc/fstab 來啟用每個文件系統的配額
重新掛載文件系統
創建配額文件,重新生成磁盤用量表
分配配額
以上步驟在下面各節中被詳細討論。
6.1.1. 啟用配額以根用戶身份使用你喜歡的編輯器來給需要配額的文件系統添加 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 00在上面的例子中, /home 文件系統上啟用了用戶和組群配額。
6.1.2. 重新掛載文件系統添加了 userquota 和 grpquota 選項後,重新掛載每個相應 fstab 條目被修改的文件系統。如果某文件系統沒有被任何進程使用,使用 umount 命令後再緊跟著 mount 命令來重新掛載這個文件系統。如果某文件系統正在被使用,要重新掛載該文件系統的最簡捷方法是重新引導系統。
6.1.3. 創建配額文件重新掛載了每個啟用了配額的文件系統後,系統現在就能夠使用磁盤配額了。不過,文件系統本身尚且不能支持配額。下一步是運行 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 )的數據。
6.1.4. 為每用戶分配配額最後一步是使用 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 使用 ED99vOR 環境變量所定義的文本編輯器。要改變這個編輯器,把 ED99vOR 環境變量設置為到你選中的編輯器的完整路徑。
第一列是啟用了配額的文件系統的名稱。第二列顯示了用戶當前使用的塊數。隨後的兩列用來設置用戶在該文件系統上的軟硬塊限度。 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 6.1.5. 為每組群分配配額配額還可以根據組群來分配。例如,要為 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 6.1.6. 為每文件系統分配配額要根據每個啟用了組群的文件系統來分配配額,使用以下命令:
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改變塊過渡期或內節點過渡期,保存對文件的改變,然後退出文本編輯器。
6.2. 管理磁盤改變塊過渡期或內節點過渡期,保存對文件的改變,然後退出文本編輯器。
6.2. 管理磁盤