磁盘配额

限定用户或组对磁盘空间的使用。

  • 安装quota
[root@apenglinux-002 dev]# yum install quota -y
  • 以支持磁盘配额的方式挂载,查看
[root@apenglinux-002 dev]# mount -o remount,usrquota,grpquota /dev/sdb3
[root@apenglinux-002 dev]# mount|grep usrquota
/dev/sdb3 on /tmp/sdb3 type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)
  • 将磁盘配额方式挂载写入配置文件,卸载,刷新配置文件,查看
[root@apenglinux-002 dev]# echo "/dev/sdb3 /tmp/sdb3 ext4 defaults,usrquota,grpquota 0 0" >> /etc/fstab
[root@apenglinux-002 dev]# umount /tmp/sdb3/
[root@apenglinux-002 dev]# mount -av
[root@apenglinux-002 dev]# mount|grep /tmp/sdb3
/dev/sdb3 on /tmp/sdb3 type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)
  • 检测磁盘配额并生成配额文件
[root@apenglinux-002 dev]# quotacheck -cugv /tmp/sdb3
[root@apenglinux-002 dev]# ll -a /tmp/sdb3
总用量 40
drwxr-xr-x.  3 root root  4096 3月  31 14:51 .
drwxrwxrwt. 18 root root  4096 3月  31 14:45 ..
-rw-------.  1 root root  6144 3月  31 14:51 aquota.group
-rw-------.  1 root root  6144 3月  31 14:51 aquota.user
drwx------.  2 root root 16384 3月  31 14:37 lost+found
  • 用户和组账号的配额设置
[root@apenglinux-002 dev]# useradd apeng
[root@apenglinux-002 dev]# edquota -g apeng
Disk quotas for group apeng (gid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb3                         0         50         80          0        0        0

查看/dev/sdb3中一个block的大小

[root@apenglinux-002 dev]# tune2fs -l /dev/sdb3|grep -i 'block size'
Block size:               4096
  • 激活磁盘配额
[root@apenglinux-002 dev]# quotaon -ugv /tmp/sdb3/
/dev/sdb3 [/tmp/sdb3]: group quotas turned on
/dev/sdb3 [/tmp/sdb3]: user quotas turned on
  • 验证

创建/tmp/sdb3/test目录,给777权限,切换到用户apeng, 写些内容,大于50k时报警,大于80k时就写不进去了

[root@apenglinux-002 dev]# mkdir /tmp/sdb3/test
[root@apenglinux-002 dev]# chmod 777 /tmp/sdb3/test
[root@apenglinux-002 dev]# su - apeng
[apeng@apenglinux-002 ~]$ cd /tmp/sdb3/test
[apeng@apenglinux-002 test]$ dd if=/dev/zero of=apeng.txt bs=1K count=80
sdb3: warning, group block quota exceeded.
记录了80+0 的读入
记录了80+0 的写出
81920字节(82 kB)已复制,0.000546859 秒,150 MB/秒
[apeng@apenglinux-002 test]$ dd if=/dev/zero of=apeng.txt bs=1K count=100
sdb3: warning, group block quota exceeded.
sdb3: write failed, group block limit reached.
dd: 写入"apeng.txt" 出错: 超出磁盘限额
记录了81+0 的读入
记录了80+0 的写出
81920字节(82 kB)已复制,0.000867468 秒,94.4 MB/秒

注意:磁盘配额中的blocks的单位为 k