edquota

用於編輯指定用戶或工作組磁盤配額

補充說明

edquota命令 用於編輯指定用戶或工作組磁盤配額。edquota預設會使用vi來編輯使用者或羣組的quota設置。

語法

1edquota(選項)(參數)

選項

1-u:設置用戶的quota,這是預設的參數;
2-g:設置羣組的quota;
3-p<源用戶名稱>:將源用戶的quota設置套用至其他用戶或羣組;
4-t:設置寬限期限。

參數

用戶:指定要編輯磁盤配額限制的用戶名或者工作組。

實例

配置系統的磁盤配額支持

首先,磁盤配額是區域性的,我們可以決定哪塊分區進行磁盤配額,哪塊分區不用(自然也就不用配置了)。一般而言,作爲一臺web虛擬主機服務器,/home/www(或者類似的)是供用戶存放資源的分區,所以可以對這兩個分區進行磁盤配額。假定我們需要對/home分區實現用戶級的限制,而對/www進行每個組的用戶配額。

第一步:

1vi /etc/fstab

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

1/dev/sda5 /home ext2 defaults 1 2
2/dev/sda7 /www ext2 defaults 1 2

/home裏實現用戶級的磁盤配額,所以對sda5行的掛裝選項域做如下修改:

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

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

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

如編輯根用戶

/etc/fstab文件中

1LABEL=/ / ext2 defaults,usrquota,grpquota 1 1

說明:/etc/fstab文件的每一行由六個字段組成:

  • 第一個字段:文件系統(分區)的註釋(類似卷標);
  • 第二個字段:文件系統的裝載點;
  • 第三個字段:文件系統類型(磁盤配額只能在ext2文件系統上實現);
  • 第四個字段:裝載文件系統是使用的選項,如果只想實現基於用戶的磁盤配額,就加入usrquota關鍵字,只想實現基於組的磁盤配額,就加入grpqouta關鍵字,如果兩者都需要,就全寫入,中間可以用逗號分隔。
  • 第五個字段:表明該文件系統(分區)是否爲只讀,如果是0就表示只讀,1表示可以讀寫。
  • 第六個字段:表示系統啓動執行fsck時檢查的順序。

注意:請特別注意這裏的拼寫,是usrquota和grpquota,不要寫成userquota和groupquota。

進入單用戶模式,用quotacheck生成.user或.group文件

quotacheck 你的目錄

1example:quotacheck / ; quotacheck /home

如果單用戶模式報錯的話umount你的設備/dev/hda*

再執行就ok了,重啓動系統,如果一切正常的話,quota將開始正常工作。

設置用戶和組配額的分配量

對磁盤配額的限制一般是從一個用戶佔用磁盤大小和所有文件的數量兩個方面來進行的。在具體操作之前,我們先了解一下磁盤配額的兩個基本概念:軟限制和硬限制。

  • 軟限制:一個用戶在文件系統可擁有的最大磁盤空間和最多文件數量,在某個寬限期內可以暫時超過這個限制。
  • 硬限制:一個用戶可擁有的磁盤空間或文件的絕對數量,絕對不允許超過這個限制。

通過edquota直接編輯數據文件:

使用編輯配額命令edquota爲用戶配置定額,在重新啓動系統之後,我們假設lanf是需要定額的系統帳戶,可以使用如下命令來爲用戶分配磁盤配額:

1edquota -u lanf

這個命令將啓動默認文本編輯器(如vi或其他由$EDITOR 環境變量指定的編輯器),其內容如下所示:

1Quotas for user lanf:
2/dev/sda5:blocks in use:0,limits(soft = 0,hard = 0)
3inodes in use:0,limits(soft = 0,hard = 0)

這表示lanf用戶在/dev/sda5分區(該分區已經在usrquota的控制之下)中迄今使用了0個數據塊(以K爲單位),並且沒有設限制(包括軟限制soft和硬限制hard),同樣,lanf在這個分區也沒有任何文件和目錄,並且也沒有任何軟硬限制。如果,我們想對用戶進行磁盤容量的限制的話,只需要修改blocks行的limits部分就可以了,注意單位使用的是K。例如要爲lanf分配100M磁盤的軟限制,400M硬限制,可以使用如下的設置:

1Quotas for user lanf:
2/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)
3inodes in use:0,limits(soft = 0,hard = 0)

同樣的,要對文件目錄的數量限制可以相應的修改inodes行。我們也可以同時對這兩項都作出限制。只需要如下的修改Quotas for user lanf:

1/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)
2inodes in use:0,limits(soft = 12800,hard = 51200)

這表示除了相應的容量的限制外,還對文件/目錄的數量做了12800個的軟限制和51200個的硬限制。在保存了新的配置後,該用戶的磁盤使用就不能超過硬限制。如果用戶試圖超過這個限制,該操作將被取消,然後得到一個錯誤信息。但是,如果每個用戶都要這麼麻煩的設置的話,那這種重複的體力勞動實在有點令人不寒而慄,而且也太浪費時間了。幸好edquota還有個-p參數(prototype)可以對已有的用戶設置進行拷貝。例如,我們想對Jack、Tom、Chen三個用戶使用和lanf一樣的限額配置,可以使用如下的命令:

1edquota -p lanf -u Jack Tom Chen

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

對組的配額,除了edquota命令中對應-u選項的改爲-g選項,例如下面對webterm1組的操作:

1edquota -g webterm1

實際上,以上的限制只是對用戶設定的硬限制在起作用。如果需要使軟限制也起作用的話,還需要對用戶的軟限制設定寬限期,缺省的軟限制的寬限期是無窮,這可以使用edquota命令的-t選項來實現。運行下面的命令:

1edquota -t

edquota將打開缺省編輯器顯示如下內容:

1time units may be:days,hours,minutes,or seconds
2Grace period before enforcing soft limits for users:
3/dev/sda5:block grace period:0 days,file grace period:0 days

可以使用天、小時、分、秒爲單位來設定寬限期。例如,在下面這個例子中,磁盤空間限制的寬限期爲兩天,而文件數量限制的寬限期只有6個小時。

1Time units may be:days,hours,minutes,or seconds
2Grace period before enforcing soft limits for users:
3/dev/sda5:block grace period:2 days,file grace period:6 hours

通過setquota工具加入:

比如加入用戶bye2000的磁盤配額,執行以下命令:

1setquota –u / 2000 2500 100 110 bye2000

以下是setquota命令用法的簡單描述:

1setquota [ -u|-g ] 裝載點 軟塊數 硬塊數 軟文件數 硬文件數 用戶名/組名

查看用戶磁盤使用情況

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

1quota -u lanf

顯示:

1Disk quotas for user lanf(uid 503):
2Filesystem blocks quota limit grace file quota limit grace
3/dev/sda5 3 102400 409800 1 12800 51200

同樣,可以使用quota -g groupname命令來參看某個組的磁盤使用情況。

注意:

  1. 如果該用戶沒有配置磁盤限額的話,輸出顯示Disk quotas for user hujm (uid 503): none
  2. 如果不帶任何參數運行quota的話,查看的是你自己的配額使用情況。

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: