Linux可以使用quota进行配额管理。
- 磁盘配额功能需内核支持,挂载之时需指定特定的选项。
- 配额按分区分配,不同用户在不同分区,对应不同配额。
- 如果没有为对应用户设置相应配额,则该用户没有限制。
- 可对用户在某分区的磁盘使用空间或者文件数目做限制。
安装软件
#sudo apt-get install quota
打开磁盘配额功能
需编辑 /etc/fstab
文件类似如下:
/dev/vg_h2/lv_h2 /home2 ext4 defaults,usrquota 0 2
比如这里对 /home
所在行进行修改,增加了 usrquota
统计用户的磁盘配额信息。命令选项 usrquota
和 grpquota
,分别对应用户级和组级配管理设置。
配置完成后,需重启系统.
创建配额文件
#quotacheck -avu
运行命令之后,会在对应的文件系统的根路径创建 aquota.user
等配额文件,里面保存用户配额信息,后面设置配额的时候,会将设置的结果存储到这个文件里面。
默认没法创建的话,根据提示添加 -m
强制创建:
quotacheck -avu
关于选项:
- -a 查看/etc/mtab下所有非nfs文件系统。
- -u 只查看 /etc/mtab 或者系统指定的用户配额
- -v 报告检查配额动作的进度
注: fstab是用来系统启动时自动挂载的文件系统,而mtab是当前系统已挂载分区是动态的。
设置用户配额
交互式设置
#edquota -u xxx
1 Disk quotas for user test_scm (uid 1064):
2 Filesystem blocks soft hard inodes soft hard
3 /dev/mapper/vg_h2-lv_h2 0 10240 15360 0 0 0
~
这里,单位是 KB
表示软配额(soft)设置为 10M
, 硬配额(hard)设置为 15M
, 0表示没有限制。
有softlimit或hardlimit, softlimit到达一定时间会转换成hardlimit。
不同文件系统时间可设置相应的limit,通过 -T选项。
非交互设置
root@vmcnszs210:/home2# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_h2-lv_h2 2.0T 1.7T 247G 88% /home2
root@vmcnszs210:/home2# setquota -u test_scm 1024 2048 0 0 /dev/mapper/vg_h2-lv_h2
root@vmcnszs210:/home2# quota -u test_scm
Disk quotas for user test_scm (uid 1064): none
适合大量用户,配置限额单位默认是K,不支持写成1024M或1024G。
启动、关闭、查看磁盘配额管理状态
开启
#quotaon -avgu
这样可以开启磁盘配额功能。
关闭
与开启相反:
#quotaoff -avgu
关闭磁盘配额。
查看状态
可以通过 quotaon -ap
查看当前的配额是否启动
#quotaon -ap
group quota on /home2 (/dev/sdb1) is off
user quota on /home2 (/dev/sdb1) is on
group quota on /home (/dev/sda3) is off
user quota on /home (/dev/sda3) is on
查看配额使用情况
我们可以查看用户或分区的配额使用情况
侧重用户、组账号角度
#quota -u miracle.lv
Disk quotas for user miracle.lv (uid 1017): none
这是没有占用数据,或者没有设置限制的用户。
# quota -su ian.chen
Disk quotas for user ian.chen (uid 1032):
Filesystem space quota limit grace files quota limit grace
/dev/sdb1 563G 567G 587G 6474k 0 0
这是设置配额的用户数据
比较容易理解的方式
#quota -su figo.zeng
Disk quotas for user figo.zeng (uid 1007):
Filesystem space quota limit grace files quota limit grace
/dev/sdb1 287G 315G 350G 2773k 0 0
如果查看组配额,则 quota -g 组名
。
侧重文件系统角度
#repquota -s -t -a
root@vmcnszs210:/home2# repquota -s -t -a
***Report for user quotas on device /dev/mapper/vg_h2-lv_h2
Block grace time: 7days; Inode grace time: 7days
Space limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 2408K 0K 0K 8 0 0
avix.huan -- 44K 0K 0K 10 0 0
amily.li -- 36K 0K 0K 7 0 0
angela.li -- 8K 0K 0K 3 0 0
figo.zeng -- 143G 0K 0K 461k 0 0
gracex.wa -- 734M 0K 0K 5 0 0
janq.liu -- 8K 0K 0K 3 0 0
jean.duan -- 1385M 0K 0K 4 0 0
jeffield. -- 46296K 0K 0K 41 0 0
jerome.wa -- 12K 0K 0K 4 0 0
kiko.han -- 4K 0K 0K 1 0 0
lillian.l -- 5923M 0K 0K 30622 0 0
......
报告所有用户,所有挂载点的文件配额,以及使用情况。 选项 -s
表示使用友好可读的格式;选项 -t
将用户名以长度9截断,这样显示的表格整齐;选项 -a
表示所有挂载点,否则使用相应的挂载点路径作为参数。
实用技巧参考:排序前35名
repquota -ast |tail -n +6 |sort -k3hr |head -n 35
以上关键是sort排序,tail用于检查范围的限定, head用于显示数目的限定,其它可以按照实际情况修改。
其它
参考
- linux中磁盘配额管理: 大致的命令
- Linux–磁盘配额管理: 更多的实践。
- *Linux如何设置磁盘配额: 讲述的比较清晰条理化。
- https://www.cnblogs.com/fanweisheng/p/11098598.html: 关于setquota
网友评论