如前面介绍章节讲到的类Unix系统最初设计理念就让许多人一起使用,多任务的操作系统,但是硬件的资源是固定有限的,如果出现个小破坏份子不断的创建文件或下载电影,那么硬盘空间总有一天会被占满的吧,这时就需要quota服务帮助我们为每个用户限制可以使用的硬盘空间,一旦超出预算就不再允许他们使用。
quota的磁盘配额可以限制用户的硬盘可用空间或最大创建文件数量,并且还有软/硬限制的区别:
软限制:当达到软限制时会提示用户,但允许用户在规定期限内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
查看内核是否支持quota功能:
[[email protected] ~]# dmesg | grep quota [ 3.140241] VFS: Disk quotas dquot_6.5.2
查看quota程序包是否已经安装:
[[email protected] ~]# rpm -q quota quota-4.01-11.el7.x86_64
查看boot目录是否支持quota功能(noquota表示暂时不支持):
[[email protected] ~]# mount | grep boot /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
让/boot目录支持quota功能:
[[email protected] ~]# vim /etc/fstab UUID=6e97ef8f-51f1-4781-8f1c-0acb9f631b32 /boot xfs defaults,uquota 0 0
重启主机后即可生效:
[[email protected] ~]# reboot
查看boot目录是否支持quota功能(usrquota表示已经支持):
[[email protected] Desktop]# mount | grep boot /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
创建两个用于quota实验的用户tom:
[[email protected] ~]# useradd tom
需要允许其他用户对/boot目录写入文件操作:
[[email protected] ~]# chmod -Rf o+w /boot
xfs_quota命令用于管理XFS文件系统的quota硬盘配额,格式为:“quota [参数] 配额 文件系统”。
参数 | 作用 |
-c 命令 | 以交换式或参数的形式设置要执行的命令。 |
-p | 设置提示或报错信息的程序名称,默认为xfs_quota。 |
-x | 专家模式,能够对quota做更多复杂的配置。 |
使用xfs_quota命令设置对tom用户在/boot目录的磁盘配额,具体要求如下:
使用quota专家模式限制磁盘软限制为3m、磁盘硬限制为6m、文件软限制为3个且文件硬限制为6个。
[[email protected] ~]# xfs_quota -x -c ‘limit bsoft=3m bhard=6m isoft=3 ihard=6 tom‘ /boot
获取当前/boot目录上的quota配额限制:
[[email protected] ~]# xfs_quota -x -c report /boot User quota on /boot (/dev/sda1) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 95084 0 0 00 [--------] tom 0 3072 6144 00 [--------]
切换至tom用户:
[[email protected] ~]# su - tom
正常创建了一个为5M的文件:
[[email protected] ~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1 1+0 records in 1+0 records out 5242880 bytes (5.2 MB) copied, 0.123966 s, 42.3 MB/s
创建8M文件时强制终止并报错了:
[[email protected] ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1 dd: error writing ‘/boot/tom’: Disk quota exceeded 1+0 records in 0+0 records out 6291456 bytes (6.3 MB) copied, 0.0201593 s, 312 MB/s
查看当前用户的quota限制(显示硬盘配额已占满):
[[email protected] ~]$ quota Disk quotas for user tom (uid 1001): Filesystem blocks quota limit grace files quota limit grace /dev/sda1 6144* 3072 6144 6days 1 3 6
edquota命令用于超级用户编辑其他用户的quota配额限制,格式为:“edquota [参数] [用户]”。
参数 | 作用 |
-u | 编辑用户的配额限制。 |
-g | 编辑用户组的配额限制。 |
-r | 通过RPC协议编辑远程的配额。 |
编辑tom的配额限制,将硬盘的硬限制修改为8m(8192k):
[[email protected] ~]# edquota -u tom Disk quotas for user tom (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/sda1 6144 3072 8192 1 3 6
切换至tom用户:
[[email protected] ~]# su - tom Last login: Mon Sep 7 16:43:12 CST 2015 on pts/0
再来创建8m的文件就不会有问题了:
[[email protected] ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1 1+0 records in 1+0 records out 8388608 bytes (8.4 MB) copied, 0.0268044 s, 313 MB/s