6.2. 管理磁碟配額

假如您實作了磁碟配額,您需要做一些維護性的工作 — 大都是查看磁碟配額是否已超過,以及確定配額的限制是正確的。 當然,假如使用者不斷地超過他們的磁碟配額限制,或者經常性的到達他們的非強制性的限制,取決於他們是何種類型的使用者以及有多少的磁碟空間衝擊他們的工作,系統管理員必須做個決定,他可以建議使用者如何使用較少的磁碟空間,或者是視需要增加該使用者的磁碟配額。

6.2.1. 磁碟配額的報告

您必須執行 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

雖然這個報告很容易閱讀,仍然有一些要點需要做解釋。 在每一個使用者之後顯示的 -- 是用來決定是否已超過磁碟空間或檔案數量限制的一種很方便的方法。 假如已超過非強制性的限制,+ 記號會出現在相對應之 - 的地方; 第一個 - 記號代表磁碟空間限制(Block limits),而第二個記號代表檔案數量的限制(Inode limits)。

grace 欄位通常是留空的,假如已經超過非強制性的限制,這個欄位會出現一個等於寬限期所剩餘的時間,假如已經超越寬限期,這裡會出現 none

6.2.2. 保持正確的磁碟配額

每當一個檔案系統沒有按照正常程序卸載時(例如由於系統當機),便有需要執行 quotacheck 指令。 然而即使系統沒有當機,您也可以定期地執行 quotacheck。 定期地執行下列的指令將會保持更加正確的磁碟配額(所使用的選項在 菴 6.1.1 節 有詳述):

quotacheck -avug

最簡單執行它的方法是使用 cron 時程管理程式。 您可以以 root 身份使用 crontab -e 指令來排成一個定期的 quotacheck,或放置執行 quotacheck 的一個程式碼在下列的任一個目錄中(請使用適用您需求的時間間隔):

當檔案系統的分析不在使用中時,可以獲得最正確的磁碟配額資料。 因此 cron 工作應該要排定在最少使用到檔案系統的時間來執行。 假如這個時間對每一個啟用磁碟配額之檔案系統都不同的話,請使用多個 cron 工作以在不同的時間執行每一個檔案系統的 quotacheck

請參考 第28章 以取得關於設定 cron 的更多資訊。

6.2.3. 啟用與停用

在不將配額設為 0 的情況下也可以將它停用,如要停用所有使用者與群組的磁碟配額,請使用下列指令:

quotaoff -vaug

假如 -u-g 選項都沒有指定,將只會停用使用者的磁碟配額。 假如只指定 -g,將只會停用群組的磁碟配額。

如要再次啟用磁碟配額,請使用 quotaon 指令並加上相同的選項。

舉例來說,如要啟用所有檔案系統上使用者與群組的磁碟配額,請使用下列指令:

quotaon -vaug

如要啟用特定一個檔案系統(如 /home)的磁碟配額:

quotaon -vug /home

假如 -u-g 選項都沒有指定,將只會啟用使用者的磁碟配額。 假如只指定 -g,將只會啟用群組的磁碟配額。