一、磁盘配额
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
2) 开启磁盘配额
[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 强制以读写方式扫描文件系统了。
4) 建立配额文件
[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 个 。