天天看點

Quota就是在Red Hat linux下實作磁盤配額的工具

Quota的安裝

在正式的RHLinux的CD光牒的/RedHat/RPMS目錄下,都有相應不同版本的quota軟體包

,可以用ls quota*檢視相關的資訊,如版本号。當然你可以友善的通過Tab鍵獲得軟體

包的全名,使用如下指令安裝:

rpm -ivh quota-2.00pre3-7.i386.rpm

當然,這裡給出的版本号隻是為了友善說明而已,這個版本是随RH7一起提供的。更

新的版本請關注RedHat的官方站點。安裝好軟體包後,就可以對磁盤配額進行配置了。

配置系統的磁盤配額支援

首先,磁盤配額是區域性的,我們可以決定哪塊分區進行磁盤配額,哪塊分區不用

(自然也就不用配置了)。一般而言,作為一台web虛拟主機伺服器,/home和/www(或

者類似的)是供使用者存放資源的分區,是以可以對這兩個分區進行磁盤配額。假定我們

需要對/home分區實作使用者級的限制,而對/www進行每個組的使用者配額。

◆第一步,vi /etc/fstab。(對了,你是管理者嗎?^&^)

找到對應于/home和/www的行,例如:

/dev/sda5 /home ext2 defaults 1 2

/dev/sda7 /www ext2 defaults 1 2

在/home裡實作使用者級的磁盤配額,是以對sda5行的挂裝選項域做如下修改:

/dev/sda5 /home ext2 defaults,usrquota 1 2

注意,是usrquota哦。類似的,我們可以如下修改/www行:

/dev/sda7 /www ext2 defaults,grpquota 1 2

◆第二步,修改/etc/rc.d/rc.local腳本,添加如下腳本:

#############################

#check quota and turn quota on

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

#############################

這一段腳本在裝載完檔案系統後運作,它将對磁盤配額的情況進行檢查并激活磁盤

配額功能。

◆第三步,為每一個實行配額控制的分區建立配額檔案。

如下建立磁盤配額配置檔案:

touch /home/quota.user

touch /www/quota.group

修改這兩個檔案的許可屬性,使它隻對root使用者有讀和寫的許可。

◆第四步,重新啟動系統。

這樣系統在運作配額檢查的時候,會在配額檔案中建立磁盤使用資訊。到這裡,我

們已經完成磁盤配額所需要的系統級的支援配置。接着,我們就可以将配額配置設定給使用者

了。

設定使用者群組配額的配置設定量

對磁盤配額的限制一般是從一個使用者占用磁盤大小和所有檔案的數量兩個方面來進

行的。在具體操作之前,我們先了解一下磁盤配額的兩個基本概念:軟限制和硬限制。

軟限制:一個使用者在檔案系統可擁有的最大磁盤空間和最多檔案數量,在某個寬限

期内可以暫時超過這個限制。

硬限制:一個使用者可擁有的磁盤空間或檔案的絕對數量,絕對不允許超過這個限制

◆使用編輯配額指令edquota為使用者配置定額

在重新啟動系統之後,我們假設lanf是需要定額的系統帳戶,可以使用如下指令來

為使用者配置設定磁盤配額:

edquota -u lanf

這個指令将啟動預設文本編輯器(如vi或其他由$EDITOR 環境變量指定的編輯器)

,其内容如下所示:

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分區(該分區已經在usrquota的控制之下)中迄今使用

了0個資料塊(以K為機關),并且沒有設限制(包括軟限制soft和硬限制hard),同樣

,lanf在這個分區也沒有任何檔案和目錄,并且也沒有任何軟硬限制。

如果,我們想對使用者進行磁盤容量的限制的話,隻需要修改blocks行的limits部分

就可以了,注意機關使用的是K。例如要為lanf配置設定100M磁盤的軟限制,400M硬限制,可

以使用如下的設定:

Quotas for user lanf:

/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)

inodes in use:0,limits(soft = 0,hard = 0)

同樣的,要對檔案目錄的數量限制可以相應的修改inodes行。我們也可以同時對這

兩項都作出限制。隻需要如下的修改

Quotas for user lanf:

/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)

inodes in use:0,limits(soft = 12800,hard = 51200)

這表示除了相應的容量的限制外,還對檔案/目錄的數量做了12800個的軟限制和51

200個的硬限制。在儲存了新的配置後,該使用者的磁盤使用就不能超過硬限制。如果使用者

試圖超過這個限制,該操作将被取消,然後得到一個錯誤資訊。

但是,如果每個使用者都要這麼麻煩的設定的話,那這種重複的體力勞動實在有點令

人不寒而栗,而且也太浪費時間了。幸好edquota還有個-q參數(prototype)可以對已

有的使用者設定進行拷貝。例如,我們想對Jack、Tom、Chen三個使用者使用和lanf一樣的限

額配置,可以使用如下的指令:

edquota -p lanf -u Jack Tom Chen

這樣一來,這三個使用者就被賦予了和lanf一樣的磁盤配額。

對組的配額,除了edquota指令中對應-u參數的改為-g參數,例如下面對webterm1組

的操作:

edquota -g webterm1

實際上,以上的限制隻是對使用者設定的硬限制在起作用。如果需要使軟限制也起作

用的話,還需要對使用者的軟限制設定寬限期――預設的,軟限制的寬限期是無窮大――

這可以使用edquota指令的-t選項來實作。運作下面的指令:

edquota -t

edquota将打開預設編輯器顯示如下内容:

Time units may be:days,hours,minutes,or seconds

Grace period before enforcing soft limits for users:

/dev/sda5:block grace period:0 days,file grace period:0 days

可以使用天、小時、分、秒為機關來設定寬限期。例如,在下面這個例子中,磁盤

空間限制的寬限期為兩天,而檔案數量限制的寬限期隻有6個小時。

Time units may be:days,hours,minutes,or seconds

Grace period before enforcing soft limits for users:

/dev/sda5:block grace period:2 days,file grace period:6 hours

◆檢視使用者磁盤使用情況

要查明某一個使用者使用了多少磁盤空間,例如lanf,可以使用如下的指令:

quota -u 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指令來參看某個組的磁盤使用情況。

注意: 1、如果該使用者沒有配置磁盤限額的話,輸出顯示如下:

Disk quotas for user hujm (uid 503): none

2、如果不帶任何參數運作quota的話,檢視的是你自己的配額使用情況。"

下一篇: banner 圖切換

繼續閱讀