我們知道,我們在某個網站申請郵箱的時候,常常分爲免費用戶和會員用戶。而且兩者可以使用的郵箱空間也是不同的,這是靠怎樣的一種機制來實現的呢?其實,這就是靠我們常說的quota(磁盤配額)來實現的。
在Linux系統中,我們可以依靠磁盤配額來對用戶可以使用的磁盤空間進行限定。如果不對磁盤進行配額的話,可能致使其他的用戶無法使用磁盤空間。例如在我們的系統中有10個用戶,總共的磁盤空間有10G。如果其中的一個在磁盤上保存了9G的文件,那麼剩下的所有的用戶能使用的空間就只剩下1G了,顯然這並不是我們所希望的。所以進行磁盤配額是非常有必要的,當然,在我們的用戶之中確實有些用戶確實需要大一些的空間,這就得根據實際情況,總和各種因素來有計劃的分配磁盤空間了。
磁盤配額是管理員爲用戶所能使用的磁盤空間進行配額限制,每一用戶只能使用最大配額範圍內的磁盤空間。我覺的其實就是對用戶對磁盤空間的使用能力的限定。在Linux中,我們可以對用戶可以使用的空間大小和文件個數進行限制,可以單獨限制也可以同時限制。不過常用的是對磁盤空間大小的限定。
在這兩中限制中,還有軟限制和硬限制之分。
軟限制就是給你分配了一定的磁盤空間,但是你可以超過這個限制,可以使用更多一點的空間,不過當使用的空間超出限定時會給用戶一些警告。並且超出給你分配的磁盤空間的文件,並不可以長時間的保存。一般就幾天而已,這需要根據管理員的設定來確定了。一旦超出這個限定時間(我們常稱這個時間爲寬限期(grace time)),超出的那些文件就將被刪除。軟限制常常與硬限制一起使用。
硬限制就是給你分配了多大的磁盤空間,你就只可以使用這些分配的空間,一點都不可超過。很強硬的,沒有一絲的迴旋餘地。
磁盤配額是在文件系統上進行的,可以獨立對用戶進行配額,也可以對組進行配額。那麼系統是怎樣知道是對用戶配額還是對組配額的呢?其實在我們對用戶或組進行配額前,首先在對應的文件系統上創建兩個數據庫文件,分別是:對用戶:aquota.user、對組:aquota.group。
下面來看看在Linux中怎樣實現磁盤配額吧!
1、 啓用磁盤配額功能
要想使用磁盤配額,在文件系統掛載的時候就啓用了磁盤配額功能。用戶和組的掛載項分別是:usrquota、grpquota。
例如在/home目錄中掛載了一個獨立的文件系統,但是沒有指定磁盤配額的掛載選項。那麼就行該重現掛載。
- #mount –o remount,usrquota,grpquota /home
不過這是臨時有效的,要想永久有效還需編輯/etc/fstab這個文件。在其默認掛載選項後面加上usrquota,grpquota。
- 修改前:/dev/vol1/home /home ext3 defaults 1 2
- 修改後:/dev/vol1/home /home ext3 defaults,usrquota,grpquota 1 2
2、 創建磁盤配額所用的數據庫
- #quotacheck –cmug /home
quotacheck:檢測指定的文件系統是否設定好磁盤配額的數據庫;
c:不讀取原有數據庫,而是直接創建數據庫,並且覆蓋原有數據庫;
m:表示一定不要將文件系統掛載爲只讀;
u:表示檢測用戶數據庫;
g:表示檢測組數據庫。
3、 啓用對用文件系統上磁盤配額的功能(未必自動啓動)
#quotaon /home :啓用此文件系統的磁盤配額功能;
-a :啓用所有的文件系統的磁盤配額功能;
#quotaoff /home :禁用此文件系統的磁盤配額功能;
-a :禁用所有的文件系統的磁盤配額功能;
4、設定用戶配額或組配額
1)、交互式設置方法:
#edquota :打開交互式配置的命令;
-u :指定用戶,進行配額;
-g :指定組,進行配額;
#edquota –u redhat :對redhat用戶可用磁盤空間進行配額,軟限制爲1G,硬限制爲2G;
修改前:
- Disk quotas for user redhat (uid 3310):
- Filesystem blocks soft hard inodes soft hard
- /dev/mapper/vol0-home 16 0 0 8 0 0
修改後:
- Disk quotas for user redhat (uid 3310):
- Filesystem blocks soft hard inodes soft hard
- /dev/mapper/vol0-home 16 10240 20480 8 0 0
Filesystem:文件系統的名稱列;
blocks:使用的塊大小;
soft:軟限制,設定可以使用的磁盤大小,單位是k;
hard:硬限制,設置最多可使用的磁盤大小,單位也是k;
inodes:已有的文件個數;
soft:軟限制,設定可以保存的文件個數;
hard:硬限制,設定最多個保存文件個數;
另外,當我們已經爲一個用戶設置好磁盤配額信息時,又想對其他用戶設置同樣的磁盤配額信息時,該怎麼做呢?你很可能說按照上面的步驟再配置就ok了,當然,這種做法是正確的,但是我們這個命令有個-p選項,可以直接將已經配置好的磁盤配額信息直接copy給另外一個用戶。如:
- #edquota -p redhat centos
注:redhat和centos都是系統中存在的用戶。
除此之外,我們還可以對用戶超出軟限制配額的那部分文件可以保存的時間進行配置。
- #edquota -t
然後直接進行編輯就可以了,默認是7天。
2)非交互式設置方法:
- #setquota –u redhat 10240 20240 0 0 /home :同樣是對redhat用戶可用磁盤空間進行
- 配額,軟限制爲1G,硬限制爲2G;最後面的兩個0表示不對文件個數進行配額。
以上就是如何進行磁盤配額了,再然後就是需要多加練習了。
那麼如何查看文件系統上磁盤配額的概要信息呢?
#repquota :這個命令就是顯示某個文件系統上的磁盤配額的摘要信息的;
另外,當我們發現某些用戶使用的磁盤空間超出了軟限制的磁盤空間大小,那麼我們就有必要提醒這些用戶,提醒其儘快保存超出限制的那部分文件了,不然等事後用戶保存的超出限制的那部分文件被系統自動清理以後,用戶來找麻煩,我們就麻煩了。所以我們有必要對其進行提醒,我們可以向所有超出文件系統配額的用戶發一封郵件進行警告:
#warnquota:用來向超出配額的所有用戶發mail進行警告;
並且,用戶可以使用quota命令來查看自己的磁盤配額信息。
以上就是有關磁盤配額的簡單設置方法了,如果想了解更多的有關上面的命令的使用方法可以man一下。
最後,說下關閉磁盤配額的簡單步驟:
- 1、修改掛載選項
- 2、刪除兩個文件
- 3、關閉磁盤配額
一起努力吧!