Linux 磁盘配额 quota
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 磁盘配额 quota相关的知识,希望对你有一定的参考价值。
Linux 磁盘配额 quota
Quota一直就是个很有用的东西。如果您曾经申请过网络的mail服务时,那么肯定就会明白什么是20MB的邮件空间、 30MB的免费网页空间,这个20MB,30MB就是quota这个东西搞出来的。如果我们要限制用户使用硬盘的容量使用大小,就需要quota来处理。
一、什么是quota
简单的说就是限制用户对磁盘空间的使用量。
在Linux系统中,由于是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生,如果其中有少数几个使用者大量的占掉了硬盘空间的话,那势必压缩其它使用者的使用权力,因此管理员应该适当的开放硬盘的权限给使用者,以妥善的分配系统资源。为了合理的分配磁盘空间,于是就有了quota的出现。
二、quota的用途
quota命令用于显示用户或者工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制。
作用对象:
针对Web服务器,例如:每个人的网页空间的容量限制。
针对Mail服务器,例如:每个人的邮件空间限制。
针对File服务器,例如:每个人最大的可用网络硬盘空间。
三、quota的使用限制
仅针对整个partition:quota实际在运作的时候,是针对『整个partition』进行限制的,例如:如果你的/dev/hda5是挂载在/home底下,那么在/home底下的所有目录都会受到限制!
核心必须支持quota:Linux系统核心必须有支持quota这个模块才行。如果您是使用FC4的预设核心,系统已经预设有开放quota这个模块。如果您是自行编译核心的,那么请特别留意您是否已经开启了quota这个模块。
只对一般身份使用者有效:并不是所有在Linux上面的账号都可以设定quota,例如root就不能设定quota,因为整个系统所有的数据几乎都是他的。
四、quota的使用
quota 选项 参数
选项:
-g:列出群组的磁盘空间限制;
-q:简明列表,只列出超过限制的部分;
-u:列出用户的磁盘空间限制;
-v:显示该用户或群组,在所有挂入系统的存储设备的空间限制;
-V:显示版本信息。
参数:
用户或者工作组:指定要显示的用户或者工作组
[[email protected](yuaning) ~]# quota -vs -u liubei #查看指定用户quota quota: Cannot open quotafile /mydata/aquota.user: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory Disk quotas for user liubei (uid 1001): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 0 0 0 [[email protected](yuaning) ~]# quota -guvs # 查看当前用户的quota限制 quota: Cannot open quotafile /mydata/aquota.user: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.user: No such file or directory Disk quotas for user root (uid 0): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 3 0 0 quota: Cannot open quotafile /mydata/aquota.group: No such file or directory quota: Cannot open quotafile /root/ccc/aquota.group: No such file or directory Disk quotas for group root (gid 0): Filesystem space quota limit grace files quota limit grace /dev/md6 0K 0K 0K 3 0 0
五、quota的相关命令
1. 扫描指令,quotacheck 参数
参数:
-a :扫瞄所有在/etc/mtab内,含有quota支持的filesystem
-u :针对使用者扫描文件与目录的使用情况,会建立aquota.user
-g :针对群组扫描文件与目录的使用情况,会建立aquota.group
-v :显示扫描过程的信息;
-M :强制进行quotacheck的扫描。
[[email protected](yuaning) ~]# quotacheck -avug quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown. quotacheck: Scanning /dev/md4 [/mydata] done quotacheck: Checked 3 directories and 2 files quotacheck: Skipping /dev/md6 [/backup] quotacheck: Scanning /dev/mapper/vgcyn-lvcyn [/root/ccc] done quotacheck: Checked 3 directories and 2 files
2. 配置指令,edquota 参数
参数:
-u :后面接账号名称。可以进入quota的编辑画面(vi)去设定username的限制值;
-g :后面接群组名称。可以进入 quota 的编辑画面(vi)去设定groupname的限制值;
-t :可以修改宽限时间(就是超过quota的soft limit值后,还能使用硬盘的宽限期限)
-p :复制范本。那个username_demo为已经存在并且已设定好quota的使用者
[[email protected](yuaning) ~]# edquota -u liubei #给用户配置quota Disk quotas for user liubei (uid 1001): Filesystem blocks soft hard inodes soft hard #blocks是文件大小限制,inodes是文件个数限制 /dev/md4 0 0 0 0 0 0 #soft是警戒线,当使用的值不小于这个值的时候会警告用户 /dev/md6 0 0 0 0 0 0 #hard是底线,一旦达到这个值,停止使用 /dev/mapper/vgcyn-lvcyn 0 0 0 0 0 0 [[email protected](yuaning) ~]# edquota -t #修改系统宽恕时间 Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/md4 7days 7days /dev/md6 14days 7days /dev/mapper/vgcyn-lvcyn 7days 7days
3. 开启指令,quotaon 参数
参数:
-u :针对用户启动quota(aquota.user)
-g :针对群组启动 quota(aquota.group)
-v :显示启动过程的相关讯息;
-a :根据/etc/mtab内的filesystem设定启动有关的quota,若不加-a的话,则后面就需要加上特定的那个filesystem!
[[email protected](yuaning) ~]# quotaon -auvg #启动所有的有quota限制的文件系统 /dev/md4 [/mydata]: group quotas turned on /dev/md4 [/mydata]: user quotas turned on /dev/mapper/vgcyn-lvcyn [/root/ccc]: group quotas turned on /dev/mapper/vgcyn-lvcyn [/root/ccc]: user quotas turned on
4. 关闭指令,quotaoff 参数
参数:
-a :全部的filesystem的quota都关闭(根据/etc/mtab)
-u :仅针对后面接的那个/mount_point关闭user quota
-g :仅针对后面接的那个/mount_point关闭group quota
六、quota举例
那么quota从开始准备filesystem的支持到整个设定结束的主要的步骤大概是:
1. 设定partition的filesystem支持quota参数
由于quota必须要让partition filesystem支持才行,一般来说,支持度最好的是ext2/ext3,启动filesystem支持quota最简单就是编辑/etc/fstab,使得准备要开放的quota磁盘可以支持quota
2. 建立quota记录文件
整个quota进行磁盘限制值记录的档案是aquota.user/aquota.group,要建立这两个档案就必须要先利用quotacheck扫描才行。接下来的步骤就是:使用quotacheck来扫描一下我们要使用的磁盘
3. 编辑quota限制值数据
使用edquota来编辑每个使用者或群组的可使用空间
4. 重新扫描与启动quota
设定好quota之后,建议可以再进行一次quotacheck,然后再以quotaon来启动
注意:当开启quota的时候,配置好参数,扫描磁盘的时候,有时候会quotacheck失败,是因为在生成quota数据库的时候,没有关闭selinux,操作如下:
[[email protected](yuaning) ~]# setenforce 0 setenforce: SELinux is disabled [[email protected](yuaning) ~]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled #将enforcing 改为disabled 即可 # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
以上是关于Linux 磁盘配额 quota的主要内容,如果未能解决你的问题,请参考以下文章