edquota命令用于編輯指定用戶或工作組磁盤配額。edquota預(yù)設(shè)會使用vi來編輯使用者或群組的quota設(shè)置。
語法
edquota(選項(xiàng))(參數(shù))
選項(xiàng)
-u:設(shè)置用戶的quota,這是預(yù)設(shè)的參數(shù);-g:設(shè)置群組的quota;-p源用戶名稱>:將源用戶的quota設(shè)置套用至其他用戶或群組;-t:設(shè)置寬限期限。
參數(shù)
用戶:指定要編輯磁盤配額限制的用戶名或者工作組。
實(shí)例
配置系統(tǒng)的磁盤配額支持
首先,磁盤配額是區(qū)域性的,我們可以決定哪塊分區(qū)進(jìn)行磁盤配額,哪塊分區(qū)不用(自然也就不用配置了)。一般而言,作為一臺web虛擬主機(jī)服務(wù)器,/home
和/www
(或者類似的)是供用戶存放資源的分區(qū),所以可以對這兩個(gè)分區(qū)進(jìn)行磁盤配額。假定我們需要對/home
分區(qū)實(shí)現(xiàn)用戶級的限制,而對/www
進(jìn)行每個(gè)組的用戶配額。
第一步:
找到對應(yīng)于/home
和/www
的行,例如:
/dev/sda5 /home ext2 defaults 1 2/dev/sda7 /www ext2 defaults 1 2
在/home
里實(shí)現(xiàn)用戶級的磁盤配額,所以對sda5行的掛裝選項(xiàng)域做如下修改:
/dev/sda5 /home ext2 defaults,usrquota 1 2
注意,是usrquota哦。類似的,我們可以如下修改/www
行:
/dev/sda7 /www ext2 defaults,grpquota 1 2
如編輯根用戶
改/etc/fstab
文件中
LABEL=/ / ext2 defaults,usrquota,grpquota 1 1
說明:/etc/fstab
文件的每一行由六個(gè)字段組成:
第一個(gè)字段:文件系統(tǒng)(分區(qū))的注釋(類似卷標(biāo));第二個(gè)字段:文件系統(tǒng)的裝載點(diǎn);第三個(gè)字段:文件系統(tǒng)類型(磁盤配額只能在ext2文件系統(tǒng)上實(shí)現(xiàn));第四個(gè)字段:裝載文件系統(tǒng)是使用的選項(xiàng),如果只想實(shí)現(xiàn)基于用戶的磁盤配額,就加入usrquota關(guān)鍵字,只想實(shí)現(xiàn)基于組的磁盤配額,就加入grpqouta關(guān)鍵字,如果兩者都需要,就全寫入,中間可以用逗號分隔。第五個(gè)字段:表明該文件系統(tǒng)(分區(qū))是否為只讀,如果是0就表示只讀,1表示可以讀寫。第六個(gè)字段:表示系統(tǒng)啟動執(zhí)行fsck時(shí)檢查的順序。
注意:請?zhí)貏e注意這里的拼寫,是usrquota和grpquota,不要寫成userquota和groupquota。
進(jìn)入單用戶模式,用quotacheck生成.user或.group文件
quotacheck 你的目錄
example:quotacheck / ; quotacheck /home
如果單用戶模式報(bào)錯(cuò)的話umount你的設(shè)備/dev/hda*
再執(zhí)行就ok了,重啟動系統(tǒng),如果一切正常的話,quota將開始正常工作。
設(shè)置用戶和組配額的分配量
對磁盤配額的限制一般是從一個(gè)用戶占用磁盤大小和所有文件的數(shù)量兩個(gè)方面來進(jìn)行的。在具體操作之前,我們先了解一下磁盤配額的兩個(gè)基本概念:軟限制和硬限制。
軟限制:一個(gè)用戶在文件系統(tǒng)可擁有的最大磁盤空間和最多文件數(shù)量,在某個(gè)寬限期內(nèi)可以暫時(shí)超過這個(gè)限制。硬限制:一個(gè)用戶可擁有的磁盤空間或文件的絕對數(shù)量,絕對不允許超過這個(gè)限制。
通過edquota直接編輯數(shù)據(jù)文件:
使用編輯配額命令edquota為用戶配置定額,在重新啟動系統(tǒng)之后,我們假設(shè)lanf是需要定額的系統(tǒng)帳戶,可以使用如下命令來為用戶分配磁盤配額:
這個(gè)命令將啟動默認(rèn)文本編輯器(如vi或其他由$EDITOR 環(huán)境變量指定的編輯器),其內(nèi)容如下所示:
Quotas for user lanf:/dev/sda5:blocks in use:0,limits(soft = 0,hard = 0)
inodes in use:0,limits(soft = 0,hard = 0)
這表示lanf用戶在/dev/sda5
分區(qū)(該分區(qū)已經(jīng)在usrquota的控制之下)中迄今使用了0個(gè)數(shù)據(jù)塊(以K為單位),并且沒有設(shè)限制(包括軟限制soft和硬限制hard),同樣,lanf在這個(gè)分區(qū)也沒有任何文件和目錄,并且也沒有任何軟硬限制。如果,我們想對用戶進(jìn)行磁盤容量的限制的話,只需要修改blocks行的limits部分就可以了,注意單位使用的是K。例如要為lanf分配100M磁盤的軟限制,400M硬限制,可以使用如下的設(shè)置:
Quotas for user
lanf:/dev/sda5:blocks
in use:0,limits(soft = 102400,hard = 409800)inodes in use:0,limits(soft = 0,hard = 0)
同樣的,要對文件目錄的數(shù)量限制可以相應(yīng)的修改inodes行。我們也可以同時(shí)對這兩項(xiàng)都作出限制。只需要如下的修改Quotas for user lanf:
/dev/sda5:blocks
in use:0,limits(soft = 102400,hard = 409800)inodes in use:0,limits(soft = 12800,hard = 51200)
這表示除了相應(yīng)的容量的限制外,還對文件/目錄的數(shù)量做了12800個(gè)的軟限制和51200個(gè)的硬限制。在保存了新的配置后,該用戶的磁盤使用就不能超過硬限制。如果用戶試圖超過這個(gè)限制,該操作將被取消,然后得到一個(gè)錯(cuò)誤信息。但是,如果每個(gè)用戶都要這么麻煩的設(shè)置的話,那這種重復(fù)的體力勞動實(shí)在有點(diǎn)令人不寒而栗,而且也太浪費(fèi)時(shí)間了。幸好edquota還有個(gè)-p參數(shù)(prototype)可以對已有的用戶設(shè)置進(jìn)行拷貝。例如,我們想對Jack、Tom、Chen三個(gè)用戶使用和lanf一樣的限額配置,可以使用如下的命令:
edquota -p lanf -u Jack Tom Chen
這樣一來,這三個(gè)用戶就被賦予了和lanf一樣的磁盤配額。
對組的配額,除了edquota命令中對應(yīng)-u
選項(xiàng)的改為-g
選項(xiàng),例如下面對webterm1組的操作:
實(shí)際上,以上的限制只是對用戶設(shè)定的硬限制在起作用。如果需要使軟限制也起作用的話,還需要對用戶的軟限制設(shè)定寬限期,缺省的軟限制的寬限期是無窮,這可以使用edquota命令的-t
選項(xiàng)來實(shí)現(xiàn)。運(yùn)行下面的命令:
edquota將打開缺省編輯器顯示如下內(nèi)容:
time units may
be:days,hours,minutes,or secondsGrace
period before enforcing soft limits
for
users:/dev/sda5:block grace period:0
days,file grace period:0 days
可以使用天、小時(shí)、分、秒為單位來設(shè)定寬限期。例如,在下面這個(gè)例子中,磁盤空間限制的寬限期為兩天,而文件數(shù)量限制的寬限期只有6個(gè)小時(shí)。
Time units may
be:days,hours,minutes,or secondsGrace period before enforcing soft
limits for
users:/dev/sda5:block grace
period:2
days,file grace
period:6 hours
通過setquota工具加入:
比如加入用戶bye2000的磁盤配額,執(zhí)行以下命令:
setquota –u / 2000 2500 100 110 bye2000
以下是setquota命令用法的簡單描述:
setquota [ -u|-g ] 裝載點(diǎn) 軟塊數(shù) 硬塊數(shù) 軟文件數(shù) 硬文件數(shù) 用戶名/組名
查看用戶磁盤使用情況
要查明某一個(gè)用戶使用了多少磁盤空間,例如lanf,可以使用如下的命令:
顯示:
Disk quotas for user
lanf(uid 503):Filesystem blocks quota
limit grace file quota limit
grace/dev/sda5 3 102400 409800 1 12800 51200
同樣,可以使用quota -g groupname
命令來參看某個(gè)組的磁盤使用情況。
注意:
如果該用戶沒有配置磁盤限額的話,輸出顯示Disk quotas for user hujm (uid 503): none
如果不帶任何參數(shù)運(yùn)行quota的話,查看的是你自己的配額使用情況。