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 /

相关文章
相关标签/搜索