實現配額
首先保證已經安裝 quota, 然後在fstab中對需要限額的分區進行設置
比如我們對 /home 磁盤配額, fstab 就應該類似如下:
/dev/hda5 /home ext2 rw,userquota,groupquota 1 2
上邊的
/dev/hda5 就是我的 /home 對應的磁盤分區
/home 是掛載點
rw 是表示可讀寫
userquota 是表示對用戶進行配額
groupquota 是表示對用戶組群進行配額
接著編輯 /etc/rc.d/rc.local, 加上
代碼:
if [-x /sbin/quotacheck ];then
echo "Checking quotas,This may take some time ... "
/sbin/quotacheck -avug
echo "Done."
fi
if[ -x /sbin/quotaon ];then
echo "Enabling disk quota ... "
/sbin/quotaon -avug
echo "Done."
fi
最後在對應的目錄下創建配額文件,比如我上邊的實例中就應該為 /home/quota.user 和 /home/quota.group, 分別對應用戶配額和用戶組群配額, 更像細的資料應該參考 fstab 的man
不過我參考 freebsd 中的內容,似乎也可以在 /etc/ 下創建 quota.user 和 quota.group 來對用戶全局磁盤配額進行限制,你可以試試
不管磁盤空間有多麼大,磁盤空間不夠使用似乎是一個永遠的事實。Linux提供了限制用戶磁盤空間的手段,以便促使每個用戶合理有效地使用分配給他的空間。用戶磁盤空間的限制是以文件系統(分區)為單位,而不理會用戶文件放在該文件系統中的哪個目錄中。
1. 修改 /etc/fstab 文件.在文件系統相應的 mount 命令行中加入限額選項(如下的例子)。
/dev/hda7 /home ext2 defaults,usrquota,grpquota 1 2
2. 重新裝載 Linux 分區,例如:
[root@fileserver root]# mount -o remount /home
繼續。
3. 在欲加磁盤限額的文件系統的安裝點目錄建立 aquota.user 和 aquota.group 文件:
[root@fileserver root]# cd /home (/home 為單個分區 /dev/hda7 的裝載點)
[root@fileserver home]# toUCh aquota.user (為用戶設置磁盤限額)
[root@fileserver home]# touch aquota.group (為用戶組設置磁盤限額)
這時生成 的 aquota.user 和 aquota.group 是空的,不符合系統的要求。
請看下一步。
4. 生成符合系統要求的 aquota.user 和 aquota.group
[root@fileserver home]# quotacheck /home/ (生成符合系統要求 的 aquota.user)
[root@fileserver home]# quotacheck -g /home/ (生成符合系統要求 的 aquota.group)
生成時,有錯誤提示。這不要緊。因為 先前 touch 生成的是一個空文件,肯定格式不對。
在這時,對於 ext3 文件系統,可能“不得不”運行這個命令:
[root@fileserver home]# quotacheck -m [-u] /dev/hda7
[root@fileserver home]# quotacheck -m -g /dev/hda7
這樣 正確的 aquota.user 和 aquota.group 生成啦。
繼續下一步:
5. 為用戶設置磁盤空間限額:
[root@fileserver home]# edquota [-u] user_name
[root@fileserver home]# edquota -g group_name (對於用戶組)
本命令開啟一個 vi 窗口,為用戶設置磁盤空間和i節點數目的限額.其中 soft 限額為一個臨時性的限額;hard 限額為一個永久性限額(soft 限額可略大於 hard 限額),編輯方法與 vi 完全相同,以 ZZ 或 :wq 命令退出.如要給若干用戶 user1, user2,user3 指定相同的磁盤限額,可用下面的命令給這些用戶賦予與 protuser 相同的限額:
[root@fileserver home]# edquota [-u] -p protuser user1 user2 user3
[root@fileserver home]# edquota -g -p protgroup group1 group2 group3
設定soft quota和hard quota之間的時間:
[root@fileserver home]# edquota -t
出現一個 vi 窗口:
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/hda7 7days 7days
修改成自己所需要的,並保存退出就設置這個時間啦。
您在這之後可能需要重新啟動,以使磁盤限額生效。
您可以啦,不過還要注意一些問題,請繼續看下去。
6. 檢查磁盤空間限制的一致性,系統會自動每次重新啟動時,在檢查硬盤後進行( /etc/rc.sysinit ),無須您親手進行。
假若 分區 已經以“讀寫”方式掛上時,您要小心,例如:
[root@fileserver root]# quotacheck /home
quotacheck: Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
7. 以後您如果要取消磁盤空間和i節點數目的限制,可用以下命令,請看:
[root@fileserver root]# quotaoff /home (取消磁盤空間限制。)
[root@fileserver root]# quotaon /home (現在啟動磁盤空間限制。)
[root@fileserver root]# quotaon /home (已經啟動磁盤空間限制啦,所以出現以下錯誤:)
quotaon: using /home/aquota.group on /dev/hda7: Device or resource busy
quotaon: using /home/aquota.user on /dev/hda7: Device or resource busy
quotaon: using /home/aquota.user on /dev/hda7: Device or resource busy