一、什么是 Quota
在 Linux 系统中,由于是多人多工的环境,所以会有多人共同使用一个磁盘空间的情况发生, 如果其中有少数几个使用者大量的占掉了磁盘空间的话,那势必压缩其他使用者的使用权力。 因此管理员应该适当的限制硬盘的容量给使用者,以妥善的分配系统资源
二、Quota 的一般用途
1.
针对 WWW server ,例如:每个人的网页空间的容量限制。
针对 mail server,例如:每个人的邮件空间限制。
针对 file server,例如:每个人最大的可用网络磁盘空间
2.
针对 Linux 系统主机上面的配置使用:
限制某一群组所能使用的最大磁碟配额 (使用群组限制):
你可以将你的主机上的使用者分门别类,你比较喜好的那一群的使用配额就可以给高一些
限制某一使用者的最大磁碟配额 (使用使用者限制):
在限制了群组之后,你也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配。
三、 Quota 的使用限制
虽然 quota 很好用,但是使用上还是有些限制要先了解的:
仅能针对整个 filesystem:
quota 实际在运行的时候,是针对整个 filesystem进行限制的, 例如:如果你的 /dev/sda5 是挂载在 /home 底下,那么在 /home 底下的所有目录都会受到限制。
核心必须支持 quota :
Linux 核心必须有支持 quota 这个功能才行
只对一般身份使用者有效:
并不是所有在 Linux 上面的帐号都可以配置 quota ,例如 root 就不能配置 quota , 因为整个系统所有的数据几乎都是root的。
实例:
文件系统支持:
查看home是个否是独立的filesystem.
[root@www ~]# df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/hda3 4.8G 740M 3.8G 17% /home
[root@www ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw)
手动加入quota
[root@www ~]# mount -o remount,usrquota,grpquota /home
(此做法在下次重启后会失效,若要永久生效,最好写入配置档中)
[root@www ~]# vim /etc/fstab
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
[root@www ~]# umount /home
[root@www ~]# mount -a
[root@www ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
quotacheck :扫瞄文件系统并创建 Quota 的记录档
[root@www ~]# quotacheck [-acvugfm] [/mount_point]
选项与参数:
-a :扫瞄所有在 /etc/mtab 内,含有 quota 支持的 filesystem,加上此参数后,
/mount_point 可不必写,因为扫瞄所有的 filesystem
-c :创建,不读取原有数据库。
-u :针对使用者扫瞄文件与目录的使用情况,会创建 aquota.user
-g :针对群组扫瞄文件与目录的使用情况,会创建 aquota.group
-v :显示扫瞄过程的资讯;
-f :强制扫瞄文件系统,并写入新的 quota 配置档
-m :防止以只读方式挂载此系统
Quota 启动、 关闭与限制值配置
1. quotaon :启动 quota 的服务
[root@www ~]# quotaon [-avug]
[root@www ~]# quotaon [-vug] [/mount_point]
选项与参数:
-u :针对使用者启动 quota (aquota.user)
-g :针对群组启动 quota (aquota.group)
-v :显示启动过程的相关信息;
-a :根据 /etc/mtab 内的 filesystem 配置启动有关的 quota ,若不加 -a 的话,
则后面就需要加上特定的那个 filesystem
2.quotaoff :关闭 quota 的服务
[root@www ~]# quotaoff [-a]
[root@www ~]# quotaoff [-ug] [/mount_point]
选项与参数:
-a :全部的 filesystem 的 quota 都关闭 (永久关闭则编辑 /etc/mtab 删除usrquota,grpquota)
-u :仅针对后面接的那个 /mount_point 关闭 user quota
-g :仅针对后面接的那个 /mount_point 关闭 group quota
3. edquota :编辑帐号/群组的限值与宽限时间
[root@www ~]# edquota [-u username] [-g groupname]
[root@www ~]# edquota -t 修改宽限时间
[root@www ~]# edquota -p 范本帐号 -u 新帐号
选项与参数:
-u :后面接帐号名称。可以进入 quota 的编辑画面 (vim) 去配置 username 的限制值;
-g :后面接群组名称。可以进入 quota 的编辑画面 (vim) 去配置 groupname 的限制值;
-t :可以修改宽限时间。
-p :复制范本。那个 范本帐号 为已经存在并且已配置好 quota 的使用者,
意义为『将 范本帐号 这个人的 quota 限制值复制给 新帐号
范例:
[root@www ~]# edquota -u centos
Filesystem blocks soft hard inodes soft hard
/dev/hda3 80 0 0 10 0 0
当 soft/hard 为 0 时,表示没有限制.
setquota :直接在命令中配置 quota 限额(非交互式的)
[root@www ~]# setquota
选项与参数
-u 指定user用户
-g 指定group组
-t 限定用户的宽限时间
-a 设置所有文件系统
范例:
[root@www ~]# setquota -u redhat 100000 200000 0 0 /home
#repquota: 显示磁盘的摘要信息。
#warnquota :对超过限额者发出警告信
它可以依据 /etc/warnquota.conf 的配置,然后找出目前系统上面 quota 用量超过 soft (就是有 grace time 出现的那些家伙) 的帐号,透过 email 的功能将警告信件发送到使用者的电子邮件信箱。 warnquota 并不会自动运行,所以需要手动去运行它。单纯运行warnquota 之后,他会发送两封信出去, 一封给 用户,一封给 root