xfs磁盘配额的种类
需要将支持写入/etc/fstab
1 针对用户组 default,uquota/usrquota/quota
2 针对单一目录 default,gquota/grpquota
3 针对单一账号 default,pquota/prjquota
注意:不同文件系统的磁盘配额设置方法不同,针对用户组和单一目录这两项不能共存
磁盘配额只会对一般用户有效
selinux下,磁盘配额只针对/home有效如需设置别的,要先关闭selinux
配置1文件系统支持与查看
文件系统要是xfs的,文件系统查看
[root@localhost Awei]# df -hT /home
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 xfs 1014M 33M 982M 4% /home
确定是xfs系统了,因为是xfs系统,所以我们不支持remount来重新挂载,需要写在fstab文件里面或者是在初始挂载过程就加入这几个选项。
/dev/sdb1 /home xfs defaults,usrquota,grpquota 0 0
配置2查看配额报告数据
xfs_quota -x -c "命令" 【挂载点】
-x 专家模式 先写x 后面才可以加-c
-c 后面接命令,这里先介绍查看命令
:print 列出目前主机的文件系统参数
:df 和df一样后面可以加-bih
:report 列出目前磁盘配额信息 -ugr(usrquota/grppouta/prjquota)以及-bi
:state 列出目前磁盘配额的选项 可以看开启了哪些
df查看文件系统信息
[root@localhost /]# xfs_quota -x -c"df -h " /home
Filesystem Size Used Avail Use% Pathname
/dev/sdb1 1014M 32.4M 981.6M 3% /home
print 列出主机目前文件系统参数
[root@localhost /]# xfs_quota -x -c"print"
Filesystem Pathname
/ /dev/mapper/centos-root
/boot /dev/sda1
/home /dev/sdb1 (uquota, gquota)显示了
report 列出磁盘配额信息,如果不加-ugr,则三项全出来了
[root@localhost /]# xfs_quota -x -c"report" /home
User quota on /home (/dev/sdb1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
Group quota on /home (/dev/sdb1)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
state 列出目前开启的选项
[root@localhost /]# xfs_quota -x -c"state" /home
User quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #67 (5 blocks, 5 extents)
Group quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #68 (6 blocks, 6 extents)
Project quota state on /home (/dev/sdb1)
Accounting: OFF
Enforcement: OFF
Inode: #68 (6 blocks, 6 extents)
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]|
配置3限制值设置方式
xfs_quota -x -c "limit [-uh] b[soft|hard]=N i[soft|hard] name"
xfs_quota -x -c "tomer -[ug] -bir Ndays"
limit 实际设置选项。对user group来设置限制
bsoft/bhard block值 可以加单位
isoft/ihard inode值
name 就是用户名用户组名称
timer 限制提示时间
假设三个账号共享家目录 用户组是abc
账号为a1 b1 c1
县创建账号我们利用之前学的脚本
#!/bin/bash
groupadd abc
for i in a1 b1 c1
do
useradd $i -g abc
echo $i | passwd --stdin $i
done
[root@localhost /]# sh useradd.sh
更改用户 a1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 b1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 c1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
我们限制a1 a2 a3只能用100M他们的用户组只能用200M
[root@localhost /]# xfs_quota -x -c "limit -u bsoft=80M bhard=100M a1" /home
[root@localhost /]# xfs_quota -x -c "limit -u bsoft=80M bhard=100M b1" /home
[root@localhost /]# xfs_quota -x -c "limit -u bsoft=80M bhard=100M c1" /home
设置好了简单查看下
[root@localhost /]# xfs_quota -x -c "report" /home
User quota on /home (/dev/sdb1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
a1 12 81920 102400 00 [--------]
b1 12 81920 102400 00 [--------]
c1 12 81920 102400 00 [--------]
Group quota on /home (/dev/sdb1)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
abc 36 0 0 00 [--------]
好了
设置用户组abc限额
[root@localhost /]# xfs_quota -x -c"limit -g bsoft=180M bhard=200M abc" /home
[root@localhost /]# xfs_quota -x -c "report" /home
User quota on /home (/dev/sdb1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
a1 12 81920 102400 00 [--------]
b1 12 81920 102400 00 [--------]
c1 12 81920 102400 00 [--------]
Group quota on /home (/dev/sdb1)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
Awei 12 0 0 00 [--------]
abc 36 184320 204800 00 [--------]
设置好了
接下来我们设置一下提醒失效时间
[root@localhost /]# xfs_quota -x -c "timer -u -b 14days" /home
[root@localhost /]# xfs_quota -x -c "state" /home
User quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #67 (5 blocks, 5 extents)
Group quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #68 (6 blocks, 6 extents)
Project quota state on /home (/dev/sdb1)
Accounting: OFF
Enforcement: OFF
Inode: #68 (6 blocks, 6 extents)
Blocks grace time: [14 days]
当到了设置警告值,会警告,超过hard会锁定文件系统使用权
配置4针对单一目录设置配额
注意,设置了用户组之后,请关闭用户组在fstab的选项,单一目录才有意义
/dev/sdb1 /home xfs defaults,usrquota,prjquota 0 0添加单一目录参数卸载重新挂载
查看开启状态
[root@localhost /]# xfs_quota -x -c "state" /home
User quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #67 (5 blocks, 5 extents)
Group quota state on /home (/dev/sdb1)
Accounting: OFF
Enforcement: OFF
Inode: #68 (6 blocks, 6 extents)
Project quota state on /home (/dev/sdb1)
Accounting: ON
Enforcement: ON
Inode: #68 (6 blocks, 6 extents)
Blocks grace time: [14 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]
目录的设置比较奇怪,他必须设置一个选项名称,以及选项id都是自己定的。
识别码与目录名,在/etc/projects
项目名称与标识在/etc/projid
[root@localhost /]# echo "12:/home/quota" >> /etc/projects
[root@localhost /]# echo "myquota:12" >> /etc/projid
在设置的时候我们需要将配置文件写好
之后我们设置启动
[root@localhost /]# xfs_quota -x -c "project -s myquota" /home
xfs_quota: cannot find mount point for path `/home/quota': 没有那个文件或目录
Processed 0 (/etc/projects and cmdline) paths for project myquota with recursion depth infinite (-1)会显示一大堆,ok的
查看一下信息
[root@localhost /]# xfs_quota -x -c "report" /home
Project quota on /home (/dev/sdb1)
Blocks
Project ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
#0 48 0 0 00 [-------]
接着我们来设置磁盘配额
[root@localhost /]# xfs_quota -x -c "limit -p bsoft=80M bhard=100M myquota" /home|
接下来我们查看一下
[root@localhost /]# xfs_quota -x -c "report" /home
Project ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
#0 48 0 0 00 [--------]
myquota 0 81920 102400 00 [--------]
好了
磁盘配额管理的额外命令
暂时取消磁盘配额限制
xfs_quota -x -c "disable -up" /point
恢复正常限制
xfs_quota -x -c "enable -up" /point
完全关闭配额管理,关了之后需要重新挂载
xfs_quota -x -c "off -up" /point
删除project控制表,全删除
xfs_quota -x -c "remove -p" /point
这个命令需要在off情况下使用。