概述:在Linux2.4系統中,磁盤配額(Quota)的實現和以前的相比,在配置方面有了明顯的不同,本文將以具體的實例來說明如何在linux2.4中實現磁盤配額。
環境:
RedHat 7.1 quota-3.00-4
目的:
在/dev/hda1(裝載點為/)文件系統中實現基於組和用戶的磁盤配額。
步驟:
1.安裝quota
缺省情況下,在安裝系統過程中系統會自動安裝quota,可以用以下命令查看您的系統中是否安裝了quota:
# rpm –q quota
如果沒有安裝,請使用rpm –ivh命令從RedHat7.1光盤中安裝quota:
# rpm –q quota-3.00-4.rpm
安裝完成後可以用以下命令查看quota包含的文件
# rpm -ql quota
/sbin/convertquota
/sbin/quotacheck
/sbin/quotaoff
/sbin/quotaon
/usr/bin/quota
/usr/sbin/edquota
/usr/sbin/quotastats
/usr/sbin/repquota
/usr/sbin/rpc.rquotad
/usr/sbin/setquota
/usr/share/man/man1/quota.1.gz
/usr/share/man/man2/quotactl.2.gz
/usr/share/man/man8/convertquota.8.gz
/usr/share/man/man8/edquota.8.gz
/usr/share/man/man8/quotacheck.8.gz
/usr/share/man/man8/quotaoff.8.gz
/usr/share/man/man8/quotaon.8.gz
/usr/share/man/man8/quotastats.8.gz
/usr/share/man/man8/repquota.8.gz
/usr/share/man/man8/rquotad.8.gz
/usr/share/man/man8/setquota.8.gz
2.建立quota數據文件
在quota-3.00-4版本中,系統使用了新的數據文件。本來根據man quotacheck的說明,假如系統當前沒有數據文件存在,quotacheck將為您新建新的數據文件,但是在使用過程中,quotacheck並沒有生成相應的數據文件,所以我們必須手工來進行這一工作。我們可以通過convertquota工具來實現這一點。
首先執行以下命令建立舊格式的數據文件:
# cd /
# toUCh quota.user
# touch quota.group
# chmod 600 quota..user
# chmod 600 quota.group
這樣我們就建立了文件權限為600的quota數據文件quota.user和quota.group。
接下來,我們使用convertquota工具生成新格式的quota數據文件:
# convertquota –u /
# convertquota –g /
說明:convertquota –u / 指明將裝載點為/ 的quota舊格式的用戶磁盤配額數據文件轉換成新格式的數據文件;convertquota –g / 指明將裝載點為/ 的quota舊格式的組磁盤配額數據文件轉換成新格式的數據文件。
這樣我們就生成了新格式的quota數據文件。
3.修改/etc/fstab,從而在/dev/hda1文件系統上實現磁盤配額
原來的/etc/fstab文件內容如下所示:
# more /etc/fstab
LABEL=/ / ext2 defaults 1 1
LABEL=/data /data ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
…
修改後的/etc/fstab文件內容如下所示:
# more /etc/fstab
LABEL=/ / ext2 defaults,usrquota,grpquota 1 1
LABEL=/data /data ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
…
說明:/etc/fstab文件的每一行由六個字段組成:
第一個字段:文件系統(分區)的注釋(類似卷標);
第二個字段:文件系統的裝載點;
第三個字段:文件系統類型(磁盤配額只能在ext2文件系統上實現);
第四個字段:裝載文件系統是使用的選項,如果只想實現基於用戶的磁盤配額,就加入usrquota關鍵字,只想實現基於組的磁盤配額,就加入grpqouta關鍵字,
如果兩者都需要,就全寫入,中間可以用逗號分隔。
第五個字段:表明該文件系統(分區)是否為只讀,如果是0就表示只讀,1表示可以讀寫。
第六個字段:表示系統啟動執行fsck時檢查的順序。
注意:請特別注意這裡的拼寫,是usrquota和grpquota,不要寫成userquota和groupquota。
4.在/etc/rc.d/rc.local中加入quota啟動腳本
這段腳本如下所示:
#!/bin/bash
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 "Turning on quota"
/sbin/quotaon -avug
echo "OK"
fi
注意:這裡需要注意的是quotacheck和quotaon文件的路徑,在RedHat7.1中,這些文件的路徑和以前的版本不同。請通過rpm –ql quota來確定其路徑。
5.重啟動系統,如果一切正常的話,quota將開始正常工作。
6.加入對用戶的磁盤配額:
在quota-3.00-4可以通過兩種方法實現:
a.通過edquota直接編輯數據文件:
比如加入用戶bye2000的磁盤配額,執行以下命令:
# edquota –u bye2000
Edit block and inode quota for user bye2000:
Device /dev/hda1 (/):
Used 500KB, limits: soft=2000 hard=2500
Used 10 inodes, limits: soft=100 hard=110
然後直接修改即可。
b.通過setquota工具加入:
比如加入用戶bye2000的磁盤配額,執行以下命令:
setquota –u / 2000 2500 100 110 bye2000
以下是setquota命令用法的簡單描述:
setquota [ -u-g ] 裝載點 軟塊數 硬塊數 軟文件數 硬文件數 用戶名/組名
7.其他問題說明:
a.關於所使用到的命令的詳細用法,請參考各個命令的man手冊;
b.軟限制(soft)表示當用戶空間超過該值時,系統將警告用戶。硬限制(hard),當用戶的空間超過該值時,所有操作都無效,並會接到系統的提示。
Edit block and inode quota for user bye2000:
Device /dev/hda1 (/):
Used 500KB, limits: soft=2000 hard=2500
Used 10 inodes, limits: soft=100 hard=110
然後直接修改即可。
b.通過setquota工具加入:
比如加入用戶bye2000的磁盤配額,執行以下命令:
setquota –u / 2000 2500 100 110 bye2000
以下是setquota命令用法的簡單描述:
setquota [ -u-g ] 裝載點 軟塊數 硬塊數 軟文件數 硬文件數 用戶名/組名
7.其他問題說明:
a.關於所使用到的命令的詳細用法,請參考各個命令的man手冊;
b.軟限制(soft)表示當用戶空間超過該值時,系統將警告用戶。硬限制(hard),當用戶的空間超過該值時,所有操作都無效,並會接到系統的提示。