本节介绍内容:

1、磁盘配额概述

2、磁盘配额工具集-quota工具集

3、磁盘配额案例分析

1、磁盘配额概述

在生产环境中,磁盘作为一种存储资源对每个用户来说都是十分宝贵的,系统管理员对于这种资源的有效利用进行监督就显得格外重要了,这样对于每一类只能部门人群或者特殊的个人予以等同身份的资源能够更好的发挥磁盘的利用效率,而quota这一免费的工具集帮助系统管理员解决了这一问题。

2、磁盘配额工具集-quota工具集

quota #显示磁盘已经使用的空间和限制

quota [选项]

-u<用户名称>#显示用户限额

-g<群组名称>#显示群组限额

-f <文件系统>#指定文件系统

-q#仅仅列出超出限额

-s#可读性显示

-v#显示用户或群组限额

requota #显示磁盘空间限制状况的信息

requota [选项][文件系统]

-a#显示/etc/fstab中quota设置的分区用户和群组使用情况

-u#显示用户磁盘限额

-g#显示群组磁盘限额

-s#可读性较好的显示

-v#显示用户或群组磁盘限额

quotacheck#检查文件系统的空间和限制

quotacheck [选项][文件系统]

-a#检查/etc/ftab中挂载的非NFS文件系统

-u#只检查用户配额

-g#只检查群组配额

-c#不读取已存在的而是一次新的扫描并创建文件aquota.user和aquota.group

--f#强制检查并创建配额文件

-R#排除根分区 必须结合-a参数

quotaon/quotaoff#开启/关闭用户或者群组的磁盘空间限制功能(分区文件系统根目录必须有aquota.user和aquota.group)

quotaon [参数][文件系统]

-a#启动在/etc/fstab中有quota设置的分区的空间限制

-g#启动群组的磁盘限额

-u #启动用户的磁盘限额

-p#无论开启与否都显示

edquota#编辑用户或者群组的磁盘限额

edquota [参数][用户或者群组]

-u用户磁盘限额设置

-g群组磁盘限额设置

-p源用户的磁盘限额配置用在别的用户或者群组

3、磁盘配额案例分析

1、分区格式化准备,并挂载

[root@pan-S ~]# ll /dev/sdb*

brw-rw---- 1 root disk 8, 16 Jul 24 03:30 /dev/sdb

brw-rw---- 1 root disk 8, 17 Jul 24 03:30 /dev/sdb1

brw-rw---- 1 root disk 8, 18 Jul 24 03:30 /dev/sdb2

[root@pan-S ~]# mkfs.ext4 /dev/sdb1 && mkdir /sdb1 && mount /dev/sdb1 /sdb1

[root@pan-S ~]# mkfs.ext4 /dev/sdb2 && mkdir /sdb2 && mount /dev/sdb2 /sdb2

2、开启磁盘分区的quota

[root@pan-S ~]# echo "/dev/sdb1 /sdb1 ext4 defaults,usrquota,grpquota 0 0" >> /etc/fstab

[root@pan-S ~]# echo "/dev/sdb2 /sdb2 ext4 defaults,usrquota,grpquota 0 0" >> /etc/fstab

[root@pan-S ~]# mount -o remount,usrquota,grpquota /dev/sdb1

[root@pan-S ~]# mount -o remount,usrquota,grpquota /dev/sdb2

或者直接umount /dev/sdb{1,2} && mount -a

[root@pan-S ~]# tail -n 1 /etc/mtab

/dev/sdb2 /sdb2 ext4 rw,usrquota,grpquota 0 0

3、检查分区磁盘配额并生成配额文件aquota.user和aquota.group 文件

[root@pan-S ~]# quotacheck -cugv /dev/sdb1

[root@pan-S ~]# quotacheck -cugv /dev/sdb2

[root@pan-S ~]# ls /sdb{1,2}

/sdb1:

aquota.group aquota.user lost+found

/sdb2:

aquota.group aquota.user lost+found

[root@pan-S ~]#

4、开启磁盘空间限制

[root@pan-S ~]# quotaon -augv

/dev/sdb1 [/sdb1]: group quotas turned on

/dev/sdb1 [/sdb1]: user quotas turned on

/dev/sdb2 [/sdb2]: group quotas turned on

/dev/sdb2 [/sdb2]: user quotas turned on

5、新建用户和组并设置空间限制

[root@pan-S ~]#useradd shudaipiaolingR

[root@pan-S ~]# echo 123456 | passwd --stdin shudaipiaolingR

Changing password for user shudaipiaolingR.

passwd: all authentication tokens updated successfully.

[root@pan-S ~]# edquota -u shudaipiaolingR

Disk quotas for user shudaipiaolingR (uid 505):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 100 200 0 0 0

/dev/sdb2 0 30 100 0 0 0

6、测试

[shudaipiaolingR@pan-S test2]$ dd if=/dev/zero of=shudaipiaolingR.txt bs=1K count=90

sdb2: warning, user block quota exceeded.

90+0 records in

90+0 records out

92160 bytes (92 kB) copied, 0.00071292 s, 129 MB/s

[shudaipiaolingR@pan-S test2]$ dd if=/dev/zero of=shudaipiaolingR.txt bs=1K count=80

80+0 records in

80+0 records out

81920 bytes (82 kB) copied, 0.054812 s, 1.5 MB/s

[shudaipiaolingR@pan-S test2]$ dd if=/dev/zero of=shudaipiaolingR.txt bs=1K count=100

sdb2: warning, user block quota exceeded.

100+0 records in

100+0 records out

102400 bytes (102 kB) copied, 0.000931248 s, 110 MB/s

[shudaipiaolingR@pan-S test2]$ dd if=/dev/zero of=shudaipiaolingR.txt bs=1K count=210

sdb2: warning, user block quota exceeded.

sdb2: write failed, user block limit reached.

dd: writing `shudaipiaolingR.txt': Disk quota exceeded

101+0 records in

100+0 records out

102400 bytes (102 kB) copied, 0.00139771 s, 73.3 MB/s

[shudaipiaolingR@pan-S test2]$