使用者磁碟配額 (Quota)
要啟用磁碟配額的功能,在磁碟掛載時要加入參數 usrquota 或 grpquota,可在 /etc/fstab 中設定,或是在掛載時加入 -o usrquota,grpquota 選項。在啟動磁碟配額後,要用 quotacheck 建立資料庫:
# echo “/dev/sdb10 /mnt/sdb10 ext3 defaults,usrquota 1 2” >> /etc/fstab (在 /etc/fstab 中加入這一行,也可以直接 mount -o usrquota /dev/sdb10 /mnt/sdb10 來掛載)
# mount -a (掛載 /etc/fstab 中所有掛載點)
# ls /mnt/sdb10 (看一下有什麼)
lost+found
# quotacheck -c /mnt/sdb10 (製作磁碟配額的資料庫)
# ls /mnt/sdb10 (再看一下)
aquota.user lost+found (多出了 aquota.user 檔案)
# quotaon /mnt/sdb10 (啟動磁碟配額)
開始編輯使用者的磁碟配額:
# edquota kevin (編輯 kevin 的磁碟配額)
Disk quotas for user kevin (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sdb10 0 10000 10000 0 100 100 (給 10000K 的磁碟空間,100 個檔案數)
# su kevin (轉成 kevin 的身份)
$ dd if=/dev/zero of=/mnt/sdb10/kevin bs=1K count=12000 (製作一個 12000K 的檔案)
sdb10: write failed, user block limit reached.
dd: 寫入 ‘/mnt/sdb10/kevin’: 硬碟 quota 滿了
9960+0 records in
9959+0 records out
10198016 bytes (10 MB) copied,0.223753 秒,45.6 MB/s
# repquota -a (看一下所有人的磁碟使用狀況)
*** Report for user quotas on device /dev/sdb10
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
———————————————————————-
root — 5664 0 0 4 0 0
kevin — 10000 10000 10000 1 100 100 (剛好到達磁碟配額限制)
要開啟或關閉 quota 可用 quotaon 及 quotaoff 指令來執行:
# quotaoff /mnt/sdb10/ (指定關閉 /mnt/sdb10 的磁碟配額限制)
# su kevin (轉換成 kevin 的身份)
$ dd if=/dev/zero of=/mnt/sdb10/kevin2 bs=1K count=12000 (再製作另一個 12000K 的檔案)
12000+0 records in
12000+0 records out
12288000 bytes (12 MB) copied,0.267534 秒,45.9 MB/s (製作成功)
$ exit (退出 kevin 身份回到 root)
# quotacheck -a (檢查一下在 quotaoff 期間的檔案變化)
# quotaon -a (打開磁碟配額限制)
# repquota -a (查詢所有使用者的磁碟空間使用狀況)
*** Report for user quotas on device /dev/sdb10
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
———————————————————————-
root — 5664 0 0 4 0 0
kevin +– 22049 10000 10000 7days 2 100 100 (kevin 已經超過磁碟配額限制)
使用者可以使用 quota 指令來看自己的磁碟配額限制:
$ quota
Disk quotas for user kevin (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb10 22049* 10000 10000 2 100 100