quota作用: 限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…
•创建硬链接不受限制,无论是block还是inode
•对root用户不起作用,但可以修改对root的配额设置
•针对文件系统,不针对目录
•针对容量或者文件数量限制,block和inode
一、启用磁盘限额
1. 让文件系统支持配额 [ext3/4]
[root@node1 sdb]# vim /etc/fstab
/dev/sdb1 /mnt/sdb ext4 defaults,usrquota,grpquota 0 0
[root@node1 sdb]# mount
/dev/sdb1 on /mnt/sdb type ext4 (rw,usrquota,grpquota)
2. 创建磁盘配额的数据库文件
注意: 建议停用SELinux
[root@nfs ~]# setenforce 0
setenforce: SELinux is disabled
[root@nfs ~]# vim /etc/selinux/config
SELINUX=disabled
如果不关闭会有类似下面的提示
[root@node1 sdb]# quotacheck -acug
quotacheck: Cannot create new quotafile /mnt/sdb/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /mnt/sdb/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
[root@node1 sdb]# yum -y install quota //如果没有这个功能的话安装quota这个包
[root@node1 sdb]# quotacheck -acgu //生成quota文件数据库
[root@node1 sdb]# ls //配额相关的数据库文件
aquota.group aquota.user lost+found
选项:
-a 所有分区(已支持配额)
-c 创建
-u 用户
-g 组
3.启动磁盘配额
[root@node1 sdb]# quotaon -a //启动所有分区的磁盘配额
二、日常管理
TIPS:数值0为不限制
方法一:edquota
[root@node1 sdb]# edquota -u alice //-u参数可以忽略
Disk quotas for user alice (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 16 8192 10240 4 0 8
blocks: 从磁盘的使用量限制,比如限制用户使用10M,单位是k
inodes: 从创建文件数限制,比如只能建立100个文件
soft: 软限制 block 8M
hard: 硬限制 block 10M
grace time: 宽限期,默认7天 # edquota -t
[root@node1 sdb]# su – alice
[alice@node1 sdb]$ pwd
/mnt/sdb
[alice@node1 sdb]$ dd if=/dev/zero of=file1 bs=1M count=9
sdb1: warning, user block quota exceeded.
9+0 records in
9+0 records out
9437184 bytes (9.4 MB) copied, 0.0221389 s, 426 MB/s
[alice@node1 sdb]$ dd if=/dev/zero of=file1 bs=1M count=20
sdb1: warning, user block quota exceeded.
sdb1: write failed, user block limit reached.
dd: writing `file1′: Disk quota exceeded
11+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0347449 s, 302 MB/s
[alice@node1 sdb]$ ll -h
-rw-rw-r–. 1 alice alice 10M Aug 11 12:10 file1
[alice@node1 sdb]$ quota //查看自己的配额情况
Disk quotas for user alice (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdb1 10240* 8192 10240 6days 1 0 8
方法二: setquota
# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 分区
# setquota -u jack 80000 100000 15 20 /dev/sda2
方法三:复制
# edquota -p alice tom robin user1 user2 user3
# setquota -p alice jack /mnt/raid5/ //必需指定设备
将alice的配额方案复制给后面所有用户
[root@nfs ~]# for i in {1..10}
do
useradd zhang$i
edquota -p alice zhang$i
done
+++查看配额+++
查看单个用户的配额: # quota jack
查看所有用户的配额: # repquota -a
# repquota -ag
普通用户查看自己配额: $ quota
扩展知识:针对组设置配额
例1:限制hr组的成员能在/home/hr目录中:100M 50文件
[root@node1 sdb]# groupadd hr
[root@node1 sdb]# useradd hr01 -G hr
[root@node1 sdb]# useradd hr02 -G hr
[root@node1 sdb]# mkdir /mnt/sdb/hrhome
[root@node1 sdb]# chgrp hr !$
chgrp hr /mnt/sdb/hrhome
[root@node1 sdb]# ll -d !$
ll -d /mnt/sdb/hrhome
drwxr-xr-x. 2 root hr 4096 Aug 11 12:18 /mnt/sdb/hrhome
[root@node1 sdb]# repquota -ag
*** Report for group quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
———————————————————————-
root — 20 0 0 2 0 0
hr — 4 0 102400 1 0 50
倒2.不改动既有系统的Quota实例
假如你忽然想将邮件信箱所在目录 /var/spool/mail/ 给一个quota,但是已经没有独立的文件系统让你规划了,并且你想让用户的邮箱与主文件夹的总体使用固定,那该怎么办?
假设/home是个独立的分区,那么:
1.将/var/spool/mail这个目录完整的移动到/home下面;
2.利用 ln -s /home/mail /var/spool/mail来新建连接数据;
3.将 /home 进行quota限额设置。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/135485.htm