一、磁盘配额
1、磁盘配额概念
配置用户对磁盘进行指定大小或者文件数量的使用权限。
1)用户配额和组配额
2)磁盘容量限制和文件个数限制
3)软限制和硬限制
4)宽限时间 如果用户的空间占用数处于软限制和硬限制之间,统会在用户登陆时警告用户磁盘将满,这个时间就是宽限时间,默认是 7 天。如果达到了宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。
2、磁盘配额条件
1)查看系统内核必须支持磁盘配额
[root@centos ~]# grep CONFIG_QUOTA /boot/config-2.6.32-642.el6.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
2)系统中必须安装了 quota 工具
[root@centos ~]# rpm -qa | grep quota
quota-3.17-23.el6.x86_64
3、磁盘配额实验
1)创建测试用户和测试组
[root@centos ~]# useradd love1
[root@centos ~]# passwd love1
[root@centos ~]# useradd love2
[root@centos ~]# passwd love2
[root@centos ~]# groupadd test
[root@centos ~]# gpasswd -a love1 test
Adding user love1 to group test
[root@centos ~]# gpasswd -a love2 test
Adding user love2 to group test
开启磁盘配额
[root@centos ~]# mount -o remount,usrquota,grpquota / # 重新挂载 /,并加入用户和用户组的磁盘配额功能.
#如果我们要想永久生效,则需要修改/etc/fstab 文件,
[root@centos ~]# vim /etc/fstab
/dev/mapper/vg_centos-lv_root / ext4 defaults,usrquota,grpquota 1 1
3)建立磁盘配额的配置文件
quotacheck [选项] [分区名]
选项:
-a:扫描/etc/mtab 文件中所有启用磁盘配额功能的分区。如果加入此参数,命令后面就不需要加入分区名了
-c:不管原有的配置文件,重新扫描并建立新的配置文件
-u:建立用户配额的配置文件,也就是生成 aquota.user 文件
-g:建立组配额的配置文件,会生成 aquota.group 文件
-v:显示扫描过程
-m:强制以读写的方式扫描文件系统,和-M 类似。一般扫描根分区时使用。
-f:强制扫描文件系统,并写入新的配置文件。一般扫描新添加的硬盘分区时使用
quotacheck -avugm
#如果我们自动扫描/分区建立配额配置文件时,因为/分区已经挂载成读写系统,而 quotacheck 需要把分区先挂载成只读分区,然后建立配置文件,
最后再挂载回来,所以不能直接在/分区建立配 置文件。这时就需要使用-m 强制以读写方式扫描文件系统了。
建立配额文件
[root@centos ~]# ll /
total 122
-rw------- 1 root root 8192 Dec 5 19:49 aquota.group
-rw------- 1 root root 7168 Dec 5 19:49 aquota.user
5)、设置用户和组的配额限制
[root@centos ~]# edquota [选项] [用户名或组名]
选项:
-u 用户名: 设定用户配额
-g 组名: 设定组配额
-t: 设定宽限时间
-p: 复制配额限制。如果已经设定好某个用户的配额限制,其他用户的配额限制如果和这个用户相同,那么可以直接复制配额限制,而不用都手工指定。
#我们给 love1 用户设定的配额限制是:磁盘空间软限制是 20MB,硬限制是 30MB;文件个数的软限制是 8 个,硬限制是 10 个
[root@centos ~]# edquota -u love1
Disk quotas for user love1 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg_centos-lv_root 16 20000 30000 5 8 10
再给 love2 用户配置限额,love2 用户要求是空间软限制 250MB,硬限制 250MB,文件个数不做限制
[root@centos ~]# edquota -u love2
Disk quotas for user love2 (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg_centos-lv_root 16 250000 300000 5 0 0
接下来给 test 组配置限额,test 组要求是空间软限制是 450MB,硬限制 500MB,文件个数不做限制
Disk quotas for group test (gid 502):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg_centos-lv_root 0 450000 500000 0 0 0
6)、启动和关闭配额
启动配额
[root@centos ~]# quotaon [选项] [分区名]
选项:
-a:依据/etc/mtab 文件启动所有的配额分区。如果不加-a,后面就一定要指定分区名
-u:启动用户配额
-g:启动组配额
-v:显示启动过程的信息
[root@centos ~]# quotaon -ugv /
/dev/mapper/vg_centos-lv_root [/]: group quotas turned on
/dev/mapper/vg_centos-lv_root [/]: user quotas turned on
[root@localhost ~]# quotaoff [选项] [分区名]
选项
-a:依据/etc/mtab 文件关闭所有的配额分区。如果不加-a,后面就一定要指定分区名
-u:关闭用户配额
-g:关闭组配额
-v:显示启动过程的信息
关闭配额
[root@centos ~]# quotaoff -ugv /
/dev/mapper/vg_centos-lv_root [/]: group quotas turned off
/dev/mapper/vg_centos-lv_root [/]: user quotas turned off
7)磁盘配额查询
[root@centos ~]# repquota [选项] [分区名]
选项:
-a: 依据/etc/mtab 文件查询配额。如果不加-a 选项,就一定要加分区名
-u: 查询用户配额
-g: 查询组配额
-v: 显示详细信息
-s: 以习惯单位显示容量大小
repquota –augvs
8)测试
[love1@centos ~]$ dd if=/dev/zero of=/home/love1/test/test bs=1M count=60
dm-0: warning, user block quota exceeded.
dm-0: write failed, user block limit reached.
dd: writing `/home/love1/test/test': Disk quota exceeded
30+0 records in
29+0 records out
30699520 bytes (31 MB) copied, 0.633288 s, 48.5 MB/s
9)交互式命令设置
[root@centos ~]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名
[root@centos ~]# useradd love3
[root@localhost ~]# passwd love3 # 建立用户
[root@localhost ~]# setquota -u love3 10000 20000 5 8 /
# 设定用户在 / 分区的容量软限制为 10MB ,硬限制 20MB 。文件个数软限制 5 个,硬限制 #8 个 。