Linux 用戶磁盤空間配額管理

Linux 用戶磁盤空間配額管理
2011-12-21 17:16

文件系統配額示例:檢查quota功能包是否已經安裝:rpm –q quotanode

1. 先要啓動文件系統的限額功能。這一步主要是要編輯/etc/fstab文件。linux

  在一般的沒啓動限額功能的文件系統的fstab文件內容以下:數據庫

LABEL=/ / ext3 defaults 1 1網絡

none /dev/pts devpts gid=5,mode=620 0 0編輯器

LABEL=/home /home ext3 defaults 1 2ide

none /proc proc defaults 0 0工具

none /dev/shm tmpfs defaults 0 0測試

LABEL=/usr /usr ext3 defaults 1 2ui

LABEL=/var /var ext3 defaults 1 2blog

/dev/hda3 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

文件系統配額示例:

  若是你想對/home這個目錄下,也就是/dev/hda5分區啓動限額功能的話,咱們能夠修改對應的home項爲:

 

LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2

 

  你能夠看到,在home對應項增長usrquota和grpquota(注意拼寫)來實現用戶和用戶組的限額功能,而後從新啓動linux或者「mount –o remount /」。

文件系統配額示例:

而後,你要檢查/etc/mtab是否在對應的home項加上 usrquota和grpquota,以下:

cat /etc/mtab

   /dev/hda5 /home ext3 rw,usrquota,grpquota 0 0

你是否是以爲有點奇怪,我剛纔不是隻編輯fstab,那和mtab有什麼關係?主要緣由是quota真正讀取的文件是mtab,因此你必定要確認mtab在你修改fstab文件重起後必定更新爲上面,這樣才能夠確認你對fstab的修改爲功。

文件系統配額示例:

2. 首次掃描文件系統的使用狀況。主要使用quotacheck來掃描文件系統。如上所說,在掃描完畢後,就會在對應的目錄下產生aquota.user和aquota.group, 這兩個文件的位置都是在頂層的目錄裏,例如你對/home啓動quota功能,那麼這兩個文件就會位於/home/下面。

[root@linux home]# quotacheck -avugc

[root@linux home]# ls -l

total 31

文件系統配額示例:

-rw------- 1 root root 7168 Apr 22 04:29 aquota.group

-rw------- 1 root root 7168 Apr 22 05:14 aquota.user

drwx------ 2 marshall marshall 4096 Apr 22 05:05 marshall

drwx------ 2 test test 1024 Apr 22 05:13 test

 既然這兩個文件都產生了,咱們就能夠啓動文件系統限額功能對特定的用戶或用戶組實行限額。

文件系統配額示例:

Quotacheck -avugc

-a 根據/etc/mtab檢查全部非網絡文件系統

-v 顯示過程和結果

-u 檢查帶有usrquota參數的分區

-g 檢查帶有grpquota參數的分區

-c 建立數據庫aquota.user和aquota.group,若是之前已經存在aquota.user和aquota.group,那麼會把舊的數據庫刪除,再建立新的

[root@linux root]# quotacheck -vugc /home

不帶-a參數則須要指定目錄。

文件系統配額示例:

3. 啓動quota。咱們能夠用前面介紹的quotaon來啓動。

 

[root@linux root]# quotaon -av

/dev/hda5 [/home]: group quotas turned on

/dev/hda5 [/home]: user quotas turned on

 

這是一個啓動的輸出結果。

文件系統配額示例:

 

quotaon

-a 打開全部磁盤配額

-v 顯示輸出結果

-u 指定打開基於用戶的磁盤配額

-g 指定打開基於組的磁盤配額

-p 打印當前狀態

文件系統配額示例:

quotaoff

-a 關閉全部磁盤配額

-u 指定關閉基於用戶的磁盤配額

-g 指定關閉基於組的磁盤配額

文件系統配額示例:

4. 配置用戶或用戶組的限額。

edquota

edquota會使用系統默認的文本編輯器去來編輯磁盤配額列表

[root@linux root]# edquota -u marshall

文件系統配額示例:

4. 配置用戶或用戶組的限額。

Edquota會使用系統默認的文本編輯器來編輯磁盤配額列表

[root@linux root]# edquota –-u marshall

Disk quotas for user marshall (uid 500)

FileSystem blocks soft hard inodes soft hard

/dev/hda5 100 0 0 17 0 0

文件系統配額示例:

[root@linux root]# edquota –t

blocks 指當前已使用的block數量

第一個soft,block的軟限制,第一個hard,block的硬限制

inodes 指當前以使用的inode數量

第二個soft,inode的軟限制,第二個hard,inode的硬限制

修改soft和hard下的數字,來達到軟硬限制

修改7days來改動寬限時間,時間單位days,hours,minutes,seconds

文件系統配額示例:

4. 配置用戶或用戶組的限額。

edquota的一些選項:

-u 用戶名 -g 組名 -t 設置寬限時間 -r

#edquota –tg 設置組的grace時間,默認是設置用戶的grace時間

編輯組的磁盤配額和用戶基本類似,要注意的是,組裏全部的用戶,共享一個限額。

當一個用戶自己已經給編輯了限額,而他的所屬組又給編輯了限額,以那個較低的限額爲上限。

 

 

 

 

 

 

 

三. 磁盤配額

1. 認識Linux磁盤配額

(1) 什麼是磁盤配額

磁盤配額是用於限制用戶/用戶組在文件系統中的可用空間大小或文件數

(2) 限制方式

-硬限制

-軟限制

(3) 限制單位

-塊數

-節點數

注:-linux磁盤須要內核及文件系統的支持

2. 磁盤配額的配置過程

(1) 檢查系統是否安裝了quota軟件

#rpm -q quota //若是沒有安裝的話,則將其安裝上

(2) 準備磁盤配額分區

#vi /etc/fstab

.......

配額分區 加載點 類型 加載選項 0 0

......

注:必須設置自動加載配額分區,且在加載時指定usrquota表示支持用戶配額,指定grpquota表示支持用戶組配額

實例:

/dev/sdb1 /home ext3 defaults,usrquota 0 0

(3) 重啓系統

#reboot

(4) 建立磁盤配額文件

#touch 配額分區加載點/文件名(用戶配額文件的名稱必須爲aquota.user,用戶組配額文件的名稱必須爲aquota.group)

#quotacheck 參數 設備文件

參數:-uv 檢查用戶配額文件

-gv 檢查用戶組配額文件

-ugv 檢查用戶及用戶組配額文件

-avug 檢查全部配額分區的用戶及用戶組配額文件

實例:

#touch /home/aquota.user

#quotacheck -uv /dev/sdb1

(5) 啓動配額服務

#quotaon -uv/-gv/-ugv/ 設備文件

實例:#quotaon -uv /dev/sdb1

注: 系統重啓時會自動啓動配額服務

(6) 設置配額項

#edquota -u 用戶名 //設置用戶配額項

#edquota -g 用戶組名 //設置用戶組配額項

#edquota -p 源用戶/組 目標用戶/組 //複製配額項

#edquota -t //修改軟限制的超時時間

Disk quotas for user linux (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 88 1024 2048 20 10 20

Filesystem:文件系統

blocks:塊文件類型,不用修改

soft:第一個soft,表示軟配額容量的大小,單位爲KB

hard:第一個hard,表示硬配額容量的大小,單位爲KB

inodes:表示節點類型,不用修改

soft:第二個soft,表示軟配額文件個數的限制,以文件個數爲單位

hard:第二個hard,表示硬配額文件個數的限制,以文件個數爲單位

 

(7) 測試

#quota 用戶名 //查看用戶的磁盤配額狀況

#quota //查看本用戶的磁盤配額狀況

 

 

 

 

 

三. 磁盤配額

1. 認識Linux磁盤配額

(1) 什麼是磁盤配額

磁盤配額是用於限制用戶/用戶組在文件系統中的可用空間大小或文件數

(2) 限制方式

-硬限制

-軟限制

(3) 限制單位

-塊數

-節點數

注:-linux磁盤須要內核及文件系統的支持

2. 磁盤配額的配置過程

(1) 檢查系統是否安裝了quota軟件

#rpm -q quota //若是沒有安裝的話,則將其安裝上

(2) 準備磁盤配額分區

#vi /etc/fstab

.......

配額分區 加載點 類型 加載選項 0 0

......

注:必須設置自動加載配額分區,且在加載時指定usrquota表示支持用戶配額,指定grpquota表示支持用戶組配額

實例:

/dev/sdb1 /home ext3 defaults,usrquota 0 0

(3) 重啓系統

#reboot

(4) 建立磁盤配額文件

#touch 配額分區加載點/文件名(用戶配額文件的名稱必須爲aquota.user,用戶組配額文件的名稱必須爲aquota.group)

#quotacheck 參數 設備文件

參數:-uv 檢查用戶配額文件

-gv 檢查用戶組配額文件

-ugv 檢查用戶及用戶組配額文件

-avug 檢查全部配額分區的用戶及用戶組配額文件

實例:

#touch /home/aquota.user

#quotacheck -uv /dev/sdb1

(5) 啓動配額服務

#quotaon -uv/-gv/-ugv/ 設備文件

實例:#quotaon -uv /dev/sdb1

注: 系統重啓時會自動啓動配額服務

(6) 設置配額項

#edquota -u 用戶名 //設置用戶配額項

#edquota -g 用戶組名 //設置用戶組配額項

#edquota -p 源用戶/組 目標用戶/組 //複製配額項

#edquota -t //修改軟限制的超時時間

Disk quotas for user linux (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 88 1024 2048 20 10 20

Filesystem:文件系統

blocks:塊文件類型,不用修改

soft:第一個soft,表示軟配額容量的大小,單位爲KB

hard:第一個hard,表示硬配額容量的大小,單位爲KB

inodes:表示節點類型,不用修改

soft:第二個soft,表示軟配額文件個數的限制,以文件個數爲單位

hard:第二個hard,表示硬配額文件個數的限制,以文件個數爲單位

 

(7) 測試

#quota 用戶名 //查看用戶的磁盤配額狀況

#quota //查看本用戶的磁盤配額狀況

 

 

 

 

 

三. 磁盤配額

1. 認識Linux磁盤配額

(1) 什麼是磁盤配額

磁盤配額是用於限制用戶/用戶組在文件系統中的可用空間大小或文件數

(2) 限制方式

-硬限制

-軟限制

(3) 限制單位

-塊數

-節點數

注:-linux磁盤須要內核及文件系統的支持

2. 磁盤配額的配置過程

(1) 檢查系統是否安裝了quota軟件

#rpm -q quota //若是沒有安裝的話,則將其安裝上

(2) 準備磁盤配額分區

#vi /etc/fstab

.......

配額分區 加載點 類型 加載選項 0 0

......

注:必須設置自動加載配額分區,且在加載時指定usrquota表示支持用戶配額,指定grpquota表示支持用戶組配額

實例:

/dev/sdb1 /home ext3 defaults,usrquota 0 0

(3) 重啓系統

#reboot

(4) 建立磁盤配額文件

#touch 配額分區加載點/文件名(用戶配額文件的名稱必須爲aquota.user,用戶組配額文件的名稱必須爲aquota.group)

#quotacheck 參數 設備文件

參數:-uv 檢查用戶配額文件

-gv 檢查用戶組配額文件

-ugv 檢查用戶及用戶組配額文件

-avug 檢查全部配額分區的用戶及用戶組配額文件

實例:

#touch /home/aquota.user

#quotacheck -uv /dev/sdb1

(5) 啓動配額服務

#quotaon -uv/-gv/-ugv/ 設備文件

實例:#quotaon -uv /dev/sdb1

注: 系統重啓時會自動啓動配額服務

(6) 設置配額項

#edquota -u 用戶名 //設置用戶配額項

#edquota -g 用戶組名 //設置用戶組配額項

#edquota -p 源用戶/組 目標用戶/組 //複製配額項

#edquota -t //修改軟限制的超時時間

Disk quotas for user linux (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 88 1024 2048 20 10 20

Filesystem:文件系統

blocks:塊文件類型,不用修改

soft:第一個soft,表示軟配額容量的大小,單位爲KB

hard:第一個hard,表示硬配額容量的大小,單位爲KB

inodes:表示節點類型,不用修改

soft:第二個soft,表示軟配額文件個數的限制,以文件個數爲單位

hard:第二個hard,表示硬配額文件個數的限制,以文件個數爲單位

 

(7) 測試

#quota 用戶名 //查看用戶的磁盤配額狀況

#quota //查看本用戶的磁盤配額狀況

 

 

 

 

 

 

 

 

 

 

 

 

 

什麼是 Quota?

Quota 讓你能夠從兩方面指定磁盤的儲存限制: 使用者所可以支配的索引

節點(inodes)數量;以及使用者能夠取用的磁盤區塊數量。

Quota 背後的含意是強制使用者在大部分的時間中保持在他們的磁盤使用

限制之下,取消他們在系統上無限制地使用磁盤空間的能力。

Quota 是以每一使用者,每一文件系統爲基礎的.若是使用者可能在超過

一個以上的文件系統上創建文件,那麼必須在每一文件系統上分別設定

quota.創建quota:

一:內核中支持QUOTA:

檢查當前內核是否支持quota,當前內核配置文件在/boot下

[root@LFS ~]#grep CONFIG_QUOTA /boot/config-[version]

CONFIG_QUOTA=y

CONFIG_QUOTACTL=y

[root@LFS ~]#

若是有上列輸出,則表示當前內核已經支持quota。

若是當前內核不支持quota,須要從新編譯內核將quota support編譯進核心:

File systems --->

 

 

Quota support

二:安裝QUOTA工具:

http://distro.ibiblio.org/pub/linux/distributions/sorcerer/sources/quota/3.12/

下載quota-3.12.tar.bz2 解壓後使用以下命令編譯安裝:

[root@LFS quota-tools]#./configure --prefix=/usr

[root@LFS quota-tools]#make

[root@LFS quota-tools]#make install

三:修改/etc/fstab加入QUOTA支持:

/dev/hda7 /mnt/lfs ext3 defaults,usrquota,grpquota 1 2

四:使用quotacheck初始化QUOTA數據庫:

由於quotacheck依據/etc/mtab搜索文件系統,因此要將剛剛修改的hda7從新掛載

[root@LFS quota-tools]#mount /mnt/lfs/ -o remount

[root@LFS quota-tools]#mount

......略

/dev/hda7 on /mnt/lfs type ext3 (rw,usrquota,grpquota)

[root@LFS quota-tools]#quotacheck -avug

quotacheck: Scanning /dev/hda7 [/mnt/lfs] quotacheck: Cannot stat old user quota file: No such file or directory

quotacheck: Cannot stat old group quota file: No such file or directory

quotacheck: Cannot stat old user quota file: No such file or directory

quotacheck: Cannot stat old group quota file: No such file or directory

done

quotacheck: Checked 6316 directories and 85861 files

quotacheck: Old file not found.

quotacheck: Old file not found.

[root@LFS quota-tools]#

這裏由於搜索不到舊版本的quota文件,因此有錯誤信息,但不影響。

-a : 掃描全部在/etc/mtab中開啓quota的文件系統

-v : 顯示掃描過程

-u : 掃描全部user quotas (usrquota)

-g : 掃描全部group quotas (grpquota)

檢查完畢後生成quota的信息文件:

[root@LFS lfs]#ls -l /mnt/lfs/aquota.*

-rw------- 1 root root 11264 Mar 18 20:56 aquota.group

-rw------- 1 root root 12288 Mar 18 20:56 aquota.user

[root@LFS lfs]#

五:啓動QUOTA:

[root@LFS lfs]#quotaon -av

/dev/hda7 [/mnt/lfs]: group quotas turned on

/dev/hda7 [/mnt/lfs]: user quotas turned on

[root@LFS lfs]#

-a : 開啓全部quota設定,根據/etc/mtab設定

-v : 當開啓quota時顯示信息

六:編輯用戶磁盤限額:

這裏設定用戶quota最大使用容量爲20M,當使用到10M時會獲得警告要求下降到10M

最多能夠建立10個文件,當建立5個文件時會獲得警告要求下降到5個文件 :-)

[root@LFS lfs]#edquota -u quota

Disk quotas for user quota (uid 5011):

Filesystem blocks soft hard inodes soft hard

/dev/hda7 0 10240 20480 0 5 10

-u : 編輯user的quota

-g : 編輯group的quota

-t : 編輯寬限時間

-p : 複製quota資料到另外一用戶上

blocks :目前使用者(quota:uid=5011)在/dev/hda7所使用的空間,單位:KB (不要修改)

soft :soft limit 磁盤空間限定值 單位:KB (須要設定)

hard :hard limit 磁盤空間限定值 單位: KB (須要設定)

inodes :目前使用者使用掉的inodes,因爲不容易使用inode控制,因此不要修改它。

soft :soft limit 文件限制數量 (根據須要修改)

hard :hard limit 文件限制數量 (根據須要修改)

soft limit :最低限制容量,在寬限期(grace period)以內,使用容量能夠超過soft limit,但必須在寬限期以內將使用容量下降到soft limit如下。

hard limit :最終限制容量,若是使用者在寬限期內繼續寫入數據,到達hard limit將沒法再寫入。

寬限時間:使用容量超過soft limit,寬限時間自動啓動,使用者將容量下降到soft limit如下,寬限時間自動關閉,若是使用者沒有在寬限時間內將容量下降到soft limit,那麼他將沒法再寫入數據,即便使用容量沒有到達hard limit

設定寬限時間:

[root@LFS lfs]#edquota -t

Grace period before enforcing soft limits for users:

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

Filesystem Block grace period Inode grace period

/dev/hda7 1days 7days

OK,完成啦,檢查一下吧:

[root@LFS lfs]#quota -uv quota

Disk quotas for user quota (uid 5011):

Filesystem blocks quota limit grace files quota limit grace

/dev/hda7 0 1024 2048 0 5 10

[root@LFS lfs]#

-u : 顯示user

-v : 顯示quota值

使用-p參數複製quota資料到另外一個用戶:

[root@LFS lfs]#edquota -p quota test

[root@LFS lfs]#quota -uv test

Disk quotas for user test (uid 5012):

Filesystem blocks quota limit grace files quota limit grace

/dev/hda7 0 1024 2048 0 5 10

[root@LFS lfs]#

同時複製給多個用戶:

[root@LFS lfs]#edquota -p quota `awk -F: '$3 >499 {print $1}' /etc/passwd`

這樣就將quota的磁盤配額資料複製給全部uid >499的用戶(uid爲500以上的用戶一般爲真實用戶)

OK,最後加在啓動腳本里,系統啓動時自動激活quota吧!

能夠加入到/etc/rc.d/rc.sysinit或/etc/rc.d/rc.local中,在結尾加上一行:

/usr/sbin/quotaon -aug

還要記得在系統關機/重啓腳本(/etc/rc.d/rc[0,6]/)中加入關閉quota的語句:

/usr/sbin/quotaoff -aug

一般發行版在系統啓動/關閉時都會處理quota,在系統啓動信息看到相關信息。

例如RedHat RHEL4,Mandrake 10.1系統啓動/關閉時有這樣兩行:

Turning on user and group quotas for local filesystems: (/etc/rc.d/rc.sysinit)

Turning off quotas: (/etc/rc.d/rc0.d/S01halt /etc/rc.d/rc6.d/S01reboot)

查詢磁盤配額:

root查詢全部用戶使用狀況:

[root@LFS ~]#repquota -a

*** Report for user quotas on device /dev/hda7

Block grace time: 24:00; Inode grace time: 7days

Block limits File limits

User used soft hard grace used soft hard grace

----------------------------------------------------------------------

......略

quota +- 1032 1024 2048 23:59 2 5 10

[root@LFS ~]#

若是有多個分區爲quota,可用repquota -u 掛載點 查詢單個分區的使用狀況

普通用戶查詢本身使用狀況:

[quota@MyLFS ~]$quota

Disk quotas for user quota (uid 5011):

Filesystem blocks quota limit grace files quota limit grace

/dev/hda7 1032* 1024 2048 23:58 2 5 10

[quota@MyLFS ~]$

quotcheck :

quotcheck用來掃描文件系統的磁盤用量,更新aquota.user,aquota.group

保持quota記錄檔到最新的狀態。

所以最好在系統啓動時執行或經過cron按期執行:

每週六早七點執行一次:

0 7 * * 6 /sbin/quotacheck -avug

你是否是想在跟分區作配額?這樣是能夠的。

首先,你要修改你的/etc/fstab文件:

LABEL=/ / ext3 defaults 1 1

改成:

LABEL=/ / ext3 defaults,usrquota 1 1

或者改成:

LABEL=/ / ext3 defaults,grpquota 1 1

usrquota是基於用戶的磁盤配額,grpquota是基於組的磁盤配額,怎麼改就看你須要了。

以後你或者從新啓動一下,或者remount一下(mount -o remount / 。

第二,在 / 中創建aquota.user或aquota.grup,這兩個文件要創建在你要實現配額的頂級目錄,所謂定級目錄,就是 ̄ ̄咋解釋呢?就是好比你要在 / 上實現配額,就要在 / 下創建aquota.user或者aquota.grup;若是你要在/home上實現配額(固然你的/home應該是一個獨立的磁盤分區),就在 /home下創建這兩個文件中的一個。用touch命令創建就能夠了,touch aquota.user 或aquota.srup。但這時創建好的文件是空的,不符和系統的須要。因此執行下一步。

第三,用quotacheck -mc / 將這兩個文件(aquota.user或aquota.grup)格式化。

注意一下,除非是/分區,通常不用加-m參數,好比你要在/home上實現配額(固然你的/home應該是一個獨立的磁盤分區)就:quotacheck -c /home 就能夠了。

-m的意思是強迫在「讀、寫」模式下檢查硬盤的配額。

第四,quotaon / 啓動磁盤配額。

第五,edquota 用戶名/組名 設置用戶/組的配額

例如:edquota user_name

edquota -g group_name (對於用戶組)

執行後會打開一個vi編輯窗口。能夠設置磁盤空間和節點數目的配額。其中soft只是起到警告的做用,並不會真正的限制用戶/組。hard就會強制限制用戶/組的磁盤空間和節點數目了。

第六,設定soft quota和hard quota之間的時間:

edquota -t

出現一個 vi 窗口:

Grace period before enforcing soft limits for users:

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

Filesystem Block grace period Inode grace period

/dev/hda7 7days 7days

按照本身的須要修改吧。從新啓動就能夠了。磁盤限額就生效了。

第七,若是要成批的複製相同的磁盤配額給不通用戶:

edquota -p user user1 user2 user3

edquota -g -p group group1 group2 group3

第八,取消磁盤限額:

quotaoff /

相關文章
相關標籤/搜索