歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 安裝及使用quota管理磁盤配額

安裝及使用quota管理磁盤配額

日期:2017/2/27 14:20:22   编辑:更多Linux
  在網絡管理的工作中,由於硬盤的資源是有限的,常常需要為多用戶的服務器設定用戶的磁盤配額。這個功能對公用的多用戶服務器(免費的或者收費的)來說,更是非常必要的。Quota就是在Red Hat Linux下實現磁盤配額的工具。 Quota的安裝 在正式的RHLinux的光盤的/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個的軟限制和51200個的硬限制。在保存了新的配置後,該用戶的磁盤使用就不能超過硬限制。如果用戶試圖超過這個限制,該操作將被取消,然後得到一個錯誤信息。 但是,如果每個用戶都要這麼麻煩的設置的話,那這種重復的體力勞動實在有點令人不寒而栗,而且也太浪費時間了。幸好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的話,查看的是你自己的配額使用情況。



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的話,查看的是你自己的配額使用情況。



Copyright © Linux教程網 All Rights Reserved