quota - 磁碟配額
quota 可限制空間,其中 usrquota 為單獨使用者;grpquota 為針對使用者群組設定配額。By the way, quota 除了限制磁碟空間大小之外,還可限制建立檔案的inode(數量)。
實作磁碟配額步驟:
1. 安裝套件
1.1. 安裝 quota 套件。
jonny@gutsy:~$ sudo apt-get install quota [Enter]
2. file-system 設定
2.1. 修改 /etc/fstab 檔案並選擇預設定 Quota 的檔案系統。
jonny@gutsy:~$ sudo vi /etc/fstab [Enter] # 裝置 掛載點 檔案系統格式 mount選項
/dev/sda7 /home ext3 defaults,usrquota,grpquota
2.2. 重新掛載檔案系統:加入 usrquota 與 grpquota 後,需重新掛載才有效。
jonny@gutsy:~$ sudo mount -o remount /home [Enter]
3. quota 設定
3.1. 初始化 Quota 資料庫:quota 會藉由 Database(資料庫) 紀錄使用者或群組的使用情況,首先得使用 quotacheck 檢查配額的檔案系統及建立磁碟用量表格。(下方以 home 為例)
jonny@gutsy:~$ sudo quotacheck -cmug /home [Enter] # c: 建立 quota 資料庫
# u: 檢查使用者配額
# g: 檢查群組配額
3.2. 檢查檔案:執行完會產生 aquota.user(使用者 Quota 資料庫)、aquota.qroup(群組 Quota 資料庫)。
jonny@gutsy:home$ ls -l /home/aquota.* [Enter] -rw------- 1 root root 8192 2008-03-26 18:46 /home/aquota.group
-rw------- 1 root root 7168 2008-03-26 18:46 /home/aquota.user
3.3. 啟動 Quota Deamon。
jonny@gutsy:~$ sudo quotaon -av [Enter]
quotaoff -av 關閉Quota Deamon
3.4. 編輯使用者或群組 Quota 規則。
# 設定使用者磁碟配額
jonny@gutsy:~$ sudo edquota -u UserName [Enter]
# 設定群組磁碟配額
jonny@gutsy:~$ sudo edquota -g GroupName
接著進入 quota 編輯模式..
GNU nano 2.0.6 檔案: /tmp//EdP.aD0puo9
Disk quotas for user spa (uid 1004):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 24 100000 102400 7 0 0
3.5. 各欄介紹。
第1欄(Filesystem):啟用 quota 的檔案系統名增
第2欄(blocks):使用者已使用的區塊數量
第3欄(soft):非強制性的磁碟空間限制 # 單位:k
第4欄(hard):強制性的磁碟空間限制 # 單位:k
第5欄(inodes):使用者已使用的檔案數目
第6欄(soft):非強制性的 inode 限制
第7欄(hard):強制性的 inode 限制
4. 相關指令
4.1. 套用某個使用者的規則。
jonny@gutsy:~$ sudo edquota -p user1,user2 ..
4.2. 確認使用者配額。
jonny@gutsy:~$ sudo quota UserName [Enter]
4.3. 確認群組配額。
jonny@gutsy:~$ sudo quota -g GroupName [Enter]
4.4. 檢視單一目錄磁碟配額報告。
jonny@gutsy:~$ sudo repquota /home [Enter]
4.5. 檢視所有配額中的磁碟用量報告。
jonny@gutsy:~$ sudo repquota -aug [Enter]
【Quota】修改寬限時間(grace time)
當 user 超過 soft 時,寬限時間就會開始倒數。在寬限時間到期之前 user 還可使用剩下的空間直到 hard。不過要是在時間內沒降到 soft 以下,那麼 user 就無法新增檔案及使用剩下的空間。
jonny@ubuntu:~$ edquota -t
接下來進入編輯模式
GNU nano 2.0.6 檔案: /tmp//EdP.ae5PD58
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/sda7 7days 7days