歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux quota命令參數及用法詳解---Linux磁盤配額限制設置和查看命令

Linux quota命令參數及用法詳解---Linux磁盤配額限制設置和查看命令

日期:2017/2/28 15:49:44   编辑:Linux教程

功能說明:顯示磁盤已使用的空間與限制。

語  法:quota [-quvV][用戶名稱...] 或 quota [-gqvV][群組名稱...]

補充說明:執行quota指令,可查詢磁盤空間的限制,並得知已使用多少空間。

參  數:
-g 列出群組的磁盤空間限制。
-q 簡明列表,只列出超過限制的部分。
-u 列出用戶的磁盤空間限制。
-v 顯示該用戶或群組,在所有掛入系統的存儲設備的空間限制。
-V 顯示版本信息。

在網絡管理的工作中,由於硬盤的資源是有限的,常常需要為多用戶的服務器設定用戶的linux磁盤配額。這個功能對公用的多用戶服務器(免費的或者收費的)來說,更是非常必要的。Quota就是在RedHatlinux下實現linux磁盤配額的工具。

Quota的安裝

在正式的RHLinux的光盤的/RedHat/RPMS目錄下,都有相應不同版本的quota軟件包,可以用lsquota*查看相關的信息,如版本號。當然你可以方便的通過Tab鍵獲得軟件包的全名,使用如下命令安裝:
rpm-ivhquota-2.00pre3-7.i386.rpm

當然,這裡給出的版本號只是為了方便說明而已,這個版本是隨RH7一起提供的。更新的版本請關注RedHat的官方站點。安裝好軟件包後,就可以對磁盤配額進行配置了。
執行rpm-qlquota

配置系統的linux磁盤配額支持
首先,磁盤配額是區域性的,我們可以決定哪塊分區進行linux磁盤配額,哪塊分區不用(自然也就不用配置了)。一般而言,作為一台web虛擬主機服務器,/home和/www(或者類似的)是供用戶存放資源的分區,所以可以對這兩個分區進行linux磁盤配額。

假定我們需要對/home分區實現用戶級的限制,而對/www進行每個組的用戶配額。
第一步,vi/etc/fstab。
找到對應於/home和/www的行,例如:
/dev/sda5/homeext2defaults12
/dev/sda7/wwwext2defaults12

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

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

如編輯根用戶改/etc/fstabLABEL=//ext2defaults,usrquota,grpquota11

說明:/etc/fstab文件的每一行由六個字段組成:
第一個字段:文件系統(分區)的注釋(類似卷標);
第二個字段:文件系統的裝載點;
第三個字段:文件系統類型(磁盤配額只能在ext2文件系統上實現);
第四個字段:裝載文件系統是使用的選項,如果只想實現基於用戶的磁盤配額,就加入usrquota關鍵字,只想實現基於組的磁盤配額,就加入grpqouta關鍵字,如果兩者都需要,就全寫入,中間可以用逗號分隔。
第五個字段:表明該文件系統(分區)是否為只讀,如果是0就表示只讀,1表示可以讀寫。
第六個字段:表示系統啟動執行fsck時檢查的順序。
注意:請特別注意這裡的拼寫,是usrquota和grpquota,不要寫成userquota和groupquota。

進入單用戶模式用quotacheck生成.user或.group文件quotacheck你的目錄example:quotacheck/;quotacheck/home如果單用戶模式報錯的話umount你的設備/dev/hda*再執行就ok了,重啟動系統,如果一切正常的話,quota將開始正常工作。

設置用戶和組配額的分配量對磁盤配額的限制一般是從一個用戶占用磁盤大小和所有文件的數量兩個方面來進行的。在具體操作之前,我們先了解一下磁盤配額的兩個基本概念:軟限制和硬限制。
◆軟限制:一個用戶在文件系統可擁有的最大磁盤空間和最多文件數量,在某個寬限期內可以暫時超過這個限制。
◆硬限制:一個用戶可擁有的磁盤空間或文件的絕對數量,絕對不允許超過這個限制。

通過edquota直接編輯數據文件:
使用編輯配額命令edquota為用戶配置定額,在重新啟動系統之後,我們假設lanf是需要定額的系統帳戶,可以使用如下命令來為用戶分配磁盤配額:edquota-ulanf
這個命令將啟動默認文本編輯器(如vi或其他由$EDITOR環境變量指定的編輯器),其內容如下所示:
Quotasforuserlanf:
/dev/sda5:blocksinuse:0,limits(soft=0,hard=0)
inodesinuse:0,limits(soft=0,hard=0)
這表示lanf用戶在/dev/sda5分區(該分區已經在usrquota的控制之下)中迄今使用了0個數據塊(以K為單位),並且沒有設限制(包括軟限制soft和硬限制hard),同樣,lanf在這個分區也沒有任何文件和目錄,並且也沒有任何軟硬限制。

如果,我們想對用戶進行磁盤容量的限制的話,只需要修改blocks行的limits部分就可以了,注意單位使用的是K。例如要為lanf分配100M磁盤的軟限制,400M硬限制,可以使用如下的設置:
Quotasforuserlanf:
/dev/sda5:blocksinuse:0,limits(soft=102400,hard=409800)
inodesinuse:0,limits(soft=0,hard=0)

同樣的,要對文件目錄的數量限制可以相應的修改inodes行。我們也可以同時對這兩項都作出限制。只需要如下的修改:
Quotasforuserlanf:
/dev/sda5:blocksinuse:0,limits(soft=102400,hard=409800)
inodesinuse:0,limits(soft=12800,hard=51200)

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

這樣一來,這三個用戶就被賦予了和lanf一樣的linux磁盤配額。對組的配額,除了edquota命令中對應-u參數的改為-g參數,例如下面對webterm1組的操作:
edquota-gwebterm1

實際上,以上的限制只是對用戶設定的硬限制在起作用。如果需要使軟限制也起作用的話,還需要對用戶的軟限制設定寬限期——缺省的,軟限制的寬限期是無窮大——這可以使用edquota命令的-t選項來實現。運行下面的命令:
edquota-t
edquota將打開缺省編輯器顯示如下內容:
Timeunitsmaybe:days,hours,minutes,orseconds
Graceperiodbeforeenforcingsoftlimitsforusers:
/dev/sda5:blockgraceperiod:0days,filegraceperiod:0days

可以使用天、小時、分、秒為單位來設定寬限期。例如,在下面這個例子中,磁盤空間限制的寬限期為兩天,而文件數量限制的寬限期只有6個小時。
Timeunitsmaybe:days,hours,minutes,orseconds
Graceperiodbeforeenforcingsoftlimitsforusers:
/dev/sda5:blockgraceperiod:2days,filegraceperiod:6hours

通過setquota工具加入:
比如加入用戶bye2000的磁盤配額,執行以下命令:
setquota–u/20002500100110bye2000
以下是setquota命令用法的簡單描述:
setquota[-u|-g]裝載點軟塊數硬塊數軟文件數硬文件數用戶名/組名

查看用戶磁盤使用情況
要查明某一個用戶使用了多少磁盤空間,例如lanf,可以使用如下的命令:
quota-ulanf
顯示:
Diskquotasforuserlanf(uid503):
Filesystemblocksquotalimitgracefilequotalimitgrace
/dev/sda5310240040980011280051200
同樣,可以使用quota-ggroupname命令來參看某個組的磁盤使用情況。

注意:
1、如果該用戶沒有配置linux磁盤配額的話,輸出顯示如下:
Diskquotasforuserhujm(uid503):none
2、如果不帶任何參數運行quota的話,查看的是你自己的配額使用情況。

Copyright © Linux教程網 All Rights Reserved