linux使用quota配额管理详解

##使用条件:

- EXT格式只能对文件系统进行限制,xfs可用对project进行限制;

- 内核需要预开启对Quota支持(centos7已预开启)

- xfs针对用户和用户组时,也只能对整个文件系统来设置

- Quota限制用户/用户组时只对非管理员有效

##限制的可配置对象:

- 根据用户(User)、组(Group)、特定目录(project)

- 容量限制或文件数量限制(block/inode)

- 限制值soft(超过空间用量给予警告和宽限时间)和hard(超过空间用量则剥夺用户使用权)

- 宽限时间(grace time),空间用量超出soft限定而未达到hard限定给予的处理时限(超出时限soft值变成hard值)

一.xfs格式文件系统配额管理

##根据用户用户组配额限制

1.准备xfs文件系统

mkfs.xfs -f /dev/sdb3

mkdir -p 777 /mnt;mount /dev/sdb3 /mnt

df -Th|grep sdb3

2.创建用户、用户组

groupadd gp1;

useradd -g gp1 user1;echo "pwd1" | passwd --stdin user1

useradd -g gp1 user2;echo "pwd2" | passwd --stdin user2

id user1;id user2;

mkdir /mnt/gp1;chgrp gp1 /mnt/gp1;chmod 2770 /mnt/gp1  ##创建用户目录并变更所有组

df -hT /mnt                                                                            ##查看/mnt文件系统类型为xfs

3.启用文件系统用户、用户组配额支持

vim /etc/fstab                                                ##设置文件系统用户用户组配额

/dev/sdb3 /mnt xfs defaults,usrquota,grpquota 0 0

umount /mnt;mount -a;mount | grep mnt      ##重新挂载使得配额生效

xfs_quota -x -c "print"                                  ##查询可以使用Quota的文件系统

xfs_quota -x -c "df -h" /mnt                          ##查看目录使用情况

xfs_quota -x -c "report -ubih" /mnt               ##显示用户的Quota的限制信息

4.对用户和用户组设置配额

xfs_quota -x -c "limit -u bsoft=250M bhard=300M user1" /mnt  ##对用户user1设置配额

xfs_quota -x -c "limit -u bsoft=350M bhard=600M user2" /mnt  ##对用户user2设置配额

xfs_quota -x -c "report -ubih" /mnt                                             ##查看用户配额情况

xfs_quota -x -c "limit -g bsoft=400M bhard=800M gp1" /mnt    ##设置用户组配置

xfs_quota -x -c "report -gbih" /mnt                                             ##查看组配额情况

xfs_quota -x -c "timer -ug -b 14days" /mnt      ##-ug;同时配置用户用户组的宽限时间

xfs_quota -x -c "state" /mnt                             ##打印配额开启状态等信息

5.验证配额

su - user1

cd /mnt

dd if=/dev/zero of=user1.img bs=1M count=310

du -sh user1.img                                     ##user1空间受限;最多300M

exit

xfs_quota -x -c "report -ugbh" /mnt         ##查看用户、用户组配额情况

su - user2

cd /mnt

dd if=/dev/zero of=user2.img bs=1M count=610

du -sh user2.img                                        ##user2配额受到用户组配额限制;此时只能500M

exit 

xfs_quota -x -c "report -ugbh" /mnt          ##查看此时用户用户组配额情况

##根据project限制

##prjquota与grpquota 两种配额不能同时满足;

1.配置开启用户、project配额

vim /etc/fstab

/dev/sdb3 /mnt xfs defaults,usrquota,prjquota 0 0

umount /mnt;mount -a;df -Th /dev/sdb3     ##重新挂载

 ##检查配额情况;显示用户配额开启;用户组配额关闭;目录配额开启

xfs_quota -x -c "state"

2.设置project配额

mkdir /mnt/proj01                                 ##创建待配额目录

echo "01:/mnt/proj01" >> /etc/projects ##设置项目ID和目录的对应关系

echo "project01:01" >> /etc/projid        ##设置项目名称和项目ID的对应关系(项目名称和目录可以不同)

xfs_quota -x -c "project -s project01"  ##初始化目录名称

xfs_quota -x -c "print" /mnt                 ##打印文件系统的配额设置

xfs_quota -x -c "report -pbih" /mnt     ##查看目录的project配额情况

xfs_quota -x -c "limit -p bsoft=450M bhard=500M project01" /mnt ##设置project01项目配额限制

xfs_quota -x -c "timer -pu -b 14days" /mnt                                      ##设置宽限时间

xfs_quota -x -c "report -pbih" /mnt                                                  ##查看目录配额情况

3.验证配置

cd /mnt/proj01

dd if=/dev/zero of=/mnt/proj01/proj01.img bs=1M count=300

##此时再次创建文件时,root用户也会出现没有空间;即成功设置任意目录配额;

dd if=/dev/zero of=/mnt/proj01/proj02.img bs=1M count=300

xfs_quota -x -c "report -pbih" /mnt         ##查看project配额情况;发现使用到达上限500M

4.取消project配额配置

rm -f /etc/projects;rm -f /etc/projid     ##删除项目配额相关文件

umount /mnt                                      ##卸载

vi /etc/fstab                                        ##重新设置成常规的挂载

/dev/sdb3 /mnt xfs defaults 0 0

mount -a;df -Th|grep sdb3               ##重新挂载后查看

##Quota的管理

##查看当前用户,目录的配额的情况

xfs_quota -x -c "report -pubih" /mnt

xfs_quota -x -c "disable -up" /mnt           ##临时禁用Quota限制

xfs_quota -x -c "state" /mnt                     ##检查配额开启情况;发现已经全部OFF

 ##验证禁用是否成功

su - user1

cd /mnt

dd if=/dev/zero of=/mnt/user1.img bs=1M count=310

du -sh user1.img       ##发现创建的文件大于配额设置的300M;说明此时配额确实已经失效

exit

xfs_quota -x -c "report -pubh" /mnt ##查阅Quota状态

rm -rf /mnt/user1.img

xfs_quota -x -c "enable -up" /mnt               ##临时启动Quota限制

su - user1

cd /mnt

dd if=/dev/zero of=/mnt/user1.img bs=1M count=310 ##再次检查quota启动是否成功

du -sh user1.img                                                         ##只正常300M文件;启动成功

exit

rm -f user1.img

xfs_quota -x -c "off -up" /mnt                                    ##完全关闭Quota限制

xfs_quota -x -c "enable -up" /mnt                            ##使用临时启动失败;说明已经完全关闭quota

umount /mnt; mount -a                                            ##重新挂载;取消完全关闭

##删除Quota配置的限制(无法恢复project配额信息)

xfs_quota -x -c "off -up" /mnt                                 ##先完全关闭配额

xfs_quota -x -c "remove -p" /mnt                            ##移除之前的配置信息

xfs_quota -x -c "report -puhb" /mnt                        ##查看配额;发现已经全部清除

umount /mnt; mount -a

xfs_quota -x -c "report -puhb" /mnt                       ##用户配额信息还在;project配额信息丢失

 ##利用软连接实现Quota

vim /etc/fstab                                           ##启用/mnt分区的Quota功能

/dev/sdb3 /mnt xfs defaults,usrquota,grpquota 0 0

umount /mnt; mount -a

ln -s /mnt/mail /var/spool/mail                  ##创建软连接到Quota分区

##注意:

/根目录无法使用配额也不要尝试配额;因为涉及卸载磁盘的情况可能导致系统出现问题

二.ext系列格式文件系统配额管理

1.准备ext4格式的文件系统

umount /dev/sdb3;mkfs.ext4 /dev/sdb3;                 ##格式化sdb3为ext4格式

vi /etc/fstab                                                              ##添加挂载配置用户、用户组配额

/dev/sdb3 /mnt ext3 defaults,usrquota,grpquota 0 0

mount -a;df -Th|grep sdb3                                         ##重新挂载sdb3并查看挂载情况

##明显发现xfs文件系统格式的命令无法使用

xfs_quota -x -c "print"

xfs_quota -x -c "state" /dev/sdb3

xfs_quota -x -c "report -ugbih" /mnt

2.开启文件系统配额

 ##关闭Selinux

setenforce 0 
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config

quotacheck -cvug /mnt                            ##检查用户组配额情况;提醒缺少文件

touch /mnt/{aquota.user,aquota.group}   ##创建缺少的文件

quotacheck -cvug /mnt                            ##再次检查

quotaon -ugv /mnt                  ##开启配额;重启不会失效(不开启后面测试不会生效)

quotastats                                 ##配额状态统计

3.设置用户、用户组配额

 edquota -u user1                ##设置用户user1配额 200M

 edquota -u user2                ##设置用户user2配额 300M

 edquota -g gp1                    ##设置用户组gp1配额 400M

 edquota -t                             ##设置宽限时间

quota -v -u user1;quota -v -u user2;quota -v -g gp1     ##查看指定用户、用户组配额情况

4.配额测试

chmod 777 /mnt/;su - user1

cd /mnt

 ##user1到达配额200M上限

dd if=/dev/zero of=/mnt/user1.img bs=1M count=310 

du -sh user1.img

su - user2

cd /mnt

##user2上限300M;但是达到用户组总共400M上限

dd if=/dev/zero of=/mnt/user2.img bs=1M count=310

du -sh user2.img

##查看此时用户用户组配额情况 

quota -v -u user1;quota -v -u user2;quota -v -g gp1  

5.注意:

##此处也经过实际测试发现ext4文件系统不能支持project配额;强行挂载会出现以下报错:

mount: wrong fs type, bad option, bad superblock on /dev/sdb3,

missing codepage or helper program, or other error

In some cases useful info is found in syslog - try

dmesg | tail or so.

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值