1》什么是Quota

在Linux中,由于是多用户,多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占用掉了硬盘空间的话,那肯定影响其他用户的使 用权限,因此管理员应该适当限制硬盘的空间给用户,以妥善分配系统资源,使磁盘的容量使用较为公平;举例来说,我们用户的默认主文件夹都是在/home下面,如果/home是个 独立的分区,假设这个分区有10G,而/home下面共有30个账户,也就是说,每个用户平均应该会有333MB的空间才对,偏偏有个用户在他的主文件夹下面下了好多电影,占用了 8G的空间,这样会造成其他正常用户的不便,如果想要让磁盘的容量公平分配,这个时候就得要靠quota的帮忙;

1>Quota的一般用途:quota比较常使用的几个情况是:

针对WWW Server:列如每个人的网页空间的容量限制;

针对MAIL Server: 例如每个人的邮件空间限制;

针对FILE Server:列如每个人最大的可用网络硬盘空间(教学环境中最常见);

上面讲的是针对网络服务的设计,如果是针对Linux系统主机上面的设置,用途有下面这些:

1)限制某一用户组所能使用的最大磁盘配额(使用用户组限制);

2)限制某一用户所能使用的最大磁盘配额(使用用户限制);

3)以Link的方式来使邮件可以作为限制的配额(更改/var/spool/mail这个路径);

2>Quota的使用限制:虽然quota很好用,但是使用上还是有些限制要先了解的;

1)仅能针对整个文件系统:

quota实际在运行的时候,是针对整个文件系统进行限制的,列如:如果你的/dev/sda5是挂载在/home下面,那么在/home下面的所有目录都会受到限 制;

2)内核必须支持quota:

Linux内核必须支持quota这个功能才行,如果你是使用CentOS 5.x的默认内核,那你的系统已经默认支持quota这个功能,如果你是自行编译内核 的,那么请特别留意你是否已经真的打开了quota这个功能;

3)Quota的日志文件:

目前新版的Linux操作系统使用的是Kernel 2.6.xx的内核版本,这个内核版本支持新的quota模块,使用的默认文件(aquota.user,apuota.group)将 不同于旧版本的quota.user,quota.group,而由旧版本的quota可以通过convertquota这个程序来转换;

4)只对一般身份用户有效:

并不是所有在Linux上面的账号都可以设置quota,列如root就不能设置quota,因为整个系统所有的数据几乎都是它的,所以你不能针对某个目录 来进行quota的设计,但你可以针对某个文件系统来设置;

3>Quota的规范设置选项:quota针对整个文件系统的限制项目主要分为下面几个部分:

1)容量限制或文件数量限制:

文件系统主要规划为存放属性的inode与实际文件数据的block块,Quota既然是管理文件系统,所以当然可以管理inode或block,这两个管理的功能 为:

限制inode用量:管理用户可以新建的文件数量;

限制block用量:管理用户磁盘容量的限制,较常见的为这种方式;

2)soft/hard:

既然是规范,当然就有限制值,不管是inode/block,限制值都有两个,分别是soft与hard;通常hard限制值要比soft还要高,举例来说,若限制项目 为block,可以限制hard为500MB,而soft为400MB,这两个限制值的意义为:

hard:表示用户的用量绝对不会超过这个限制值,以上面的设置为例,用户所能使用的磁盘容量绝对不会超过500MB,若超过这个值则系统会锁住 该用户的磁盘使用权;

soft:表示用户在低于soft的限值时,可以正常使用磁盘,但若超过soft且低于hard的值时,每次用户登录系统时,系统会主动发出磁盘即将爆满的 警告信息,且会给予一个宽限时间(gracetime),不过,若用户在宽限时间倒数期间就将容量再次低于soft限值下,则宽限时间会停止;

3)会倒计时的宽限时间(grace time)

这个宽限时间只有在用户的磁盘用量介于soft到hard之间时,才会出现且会倒数的一个时间,由于达到hard限值时,用户的磁盘使用权可能会被锁 住,为了担心用户没有注意到这个磁盘配额的问题,因此设计了soft,当你的磁盘用量即将到达hard且超过soft时,系统会给予警告,但也会给一段时间 让用户自行管理磁盘,一般默 认的宽限时间为7天,如果7天内你都不进行任何磁盘管理,那么soft限制值会即刻替代hard限值来作为quota的限值;

2》Quota实例:

1>案例描述及创建用户:

目的与账号:现在我们让五个人为一组,这五个人的账户分别是myquota1,myquota2,myquota3,myquota4,myquota5,这五个用户的密码都是password,且这五个用户所 属的初始用户组都是myquotagrp,其他的账号属性则使用默认值;

账号的磁盘容量限制值:我们想让这五个用户都能够取得300MB的磁盘使用量(hard),文件数量则不予限制,此外,只要容量使用率超过250MB(soft),就予以警告 (soft);

用户组的限额:由于我的系统里面还有其他用户存在,因此我仅承认myquotagrp这个用户组最多仅能使用1GB的容量,这也就是说,如果其中三个用户都用了280MB的 容量,那么其他两人最多只能使用160MB的磁盘容量,这就是用户组与用户同时设置时会产生的结果;

宽限时间的限制:最后,我们希望每个用户在超过soft限制值之后,都还能够有14天的宽限时间,

创建用户:

2>文件系统支持:

要使用Quota必须要内核与文件系统支持才行,我们已经使用了默认支持Quota的内核,那么接下来就是要启动文件系统的支持,不过由于Quota仅针对整个文 件系统来进行规划,所以我们得先查一下/home是否是个独立的文件系统;此外,由于VFAT文件系统并不支持Linux Quota功能,所以我们必须查询一下/home的文件 系统,看看是否是ext2/ext3,这样才能够支持quota功能;

1)如果只是想要在这次开机中实验Quota,那么可以使用如下的方式来手动加入quota的支持:

2)事实上,当你重新挂载时,系统会同步更新/etc/mtab这个文件,所以我们必须确定/etc/mtab已经加入usrquota,grpquota的支持到你所想要设置的文件系统 中,另外也要强调用户与用户组的quota文件系统支持参数分别是usrquota和grpquota,千万不可写错了,不过手动挂载的数据在下次重新挂载时就会消失,因 此最好写入配置文件中,直接修改/etc/fstab;

3>新建Quota配置文件:

其实Quota是通过分析整个文件系统中每个用户(用户组)拥有的文件总数与总容量,再将这些数据记录在该文件系统的最顶层目录,然后在该配置文件中再 使用每个账号(或用户组)的限制值去规定磁盘使用量的,所以构建这个Quota配置文件就非常重要了,扫描有支持Quota参数(usrquota,grpquota)的文件系统,就 使用quotacheck这个命令,此命令语法如下:

quotacheck [-avugfM] [/mount_point]

参数:

-a: 扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,/mount_point可以不必写,因为扫描所有的文件系统了;

-u:针对用户扫描文件与目录的使用情况,会新建aquota.user;

-g:针对用户组扫描文件与目录的使用情况,会新建aquota.group;

-v:显示扫描过程的信息;

-f:强制扫描文件系统,并写入新的quota配置文件(危险);

-M:强制以读写的方式扫描文件系统,只有在特殊情况下才会使用;

4>Quota启动,关闭与限制值设置

制作好quota配置文件后,接下来就是要启动quota了,启动的方式很简单,使用quotaon,至于关闭就用quotaoff即可;

quotaon [-vug] [/mount_point]

参数:

-u:针对用户启动quota(quota.user);

-g:针对用户组启动quota(quota.group)

-v:显示启动过程的相关信息;

-a:根据/etc/mtab内的文件系统设置启动有关的quota,若不加-a的话,则后面就需要加上特定的那个文件系统;

因为我们需要启动user/group的quota,所以使用下面的语法:

特殊用法,假如你要启动/var的quota支持,那么仅启动user quota时:

#quotaon -uv /var

这个"quotaon -avug"的命令几乎只在第一次启动quota时才需要进行,因为下次等你重新启动系统时,系统的/etc/rc.d/rc.sysinit这个初始化脚本就会自动的执 行这个命令了,因此你只要在这次实例中进行一次即可,将来都不需要自行启动quota;

quotaoff:关闭quota服务

quotaoff [-a]

quotaoff [-ug] [/mount_point]

参数:

-a:全部的文件系统的quota都关闭(根据/etc/mtab);

-u:仅针对后面接的那个/mount_point关闭user quota;

-g:仅针对后面接的那个/mount_point关闭group quota;

edquota:编辑账号/用户组的限值与宽限时间,edquota是editquota的缩写,所以就是用来编辑用户或者是用户组限额的命令;

edquota [-u username] [-g groupname]

edquota -t 修改宽限时间;

edquota -p 范本账号 -u 新账号

参数:

-u:后面接账号名称,可以进入quota的编辑界面去设置username的限值;

-g:后面接组名,可以进入quota的编辑界面去设置groupname的限值;

-t:可以修改宽限时间;

-p:复制范本,那个范本账号为已经存在并且已设置好quota的用户;意义为将范本账号这个人的quota限值复制给新账号;

设置用户myquota1的限值:

七个字段的意义分别为:

文件系统:说明该限值时针对哪个文件系统的;

磁盘容量:这个数值是quota自己算出来的,单位为KB,不要修改它;

soft:磁盘容量(block)的soft限值,单位为KB;

hard:block的hard限值,单位为KB;

文件数量:这是quota自己算出来的,单位 为个数,不要修改;

soft:inode的soft限值;

hard:inode的hard限值;

*******当soft/hard为0时,表示没有限制的意思;

设置其他用户的限值:

设置用户组的限额:

将宽限时间改为14天:

5>Quota限制值的报表:

quota的报表主要有两种模式,一种是针对每个个人或用户组的quota命令,一个是针对整个文件系统的repquota命令,

1)quota:单一用户的quota报表;

quota [-uvs] [username]

quota [-gvs] [groupname]

参数:

-u:后面可以接username,表示显示出该用户的quota限值,若不接username,表示显示出执行者的quota限值;

-g:后面可接groupname,表示显示出该用户的quota限值;

-v:显示每个用户在文件系统中的quota值;

-s:使用1024为倍数来指定单位,会显示如M之类的单位;

2)repquota:针对文件系统的限额做报表;

repquota -a [-vugs]

参数:

-a:直接到/etc/mtab查询具有quota标志的文件系统,并报告quota的结果;

-v:输出的数据将含有文件系统相关的详细信息;

-u:显示出用户的quota限值(这是默认值);

-g:显示出个别用户组的quota限值;

-s:使用M,G为单位显示结果;

查询本例中所有用户的quota限制情况:

6>测试与管理:

1)利用myquota1的身份,创建一个270MB的大文件,并查看quota结果;

2)再创建另外一个大文件,让总容量超过300MB;

3)warnquota:对超过限额这发出警告信:

此命令可以依据/etc/warnquota.conf的设置,然后找出目前系统上面quota用量超过soft的账号,通过Email的功能将警告信件发送到用户的电子邮 件信箱,warnquota并不会自动执行,所以我们需要手动去执行,执行之后它会发送两封信出去,一封给myquota1,一封给root;

可以进入/var/spoll/mail中查看:

可以在/etc/warnquota.conf文件中更改提示信息,改成中文也行;

4)setquota:直接于命令中设置quota限额;

setquota [-u|-g] 名称 block (soft) block(hard) inode(soft) inode(hard) 文件系统

查看原始的myquota5限值,并给予soft/hard 分别为100000/200000:

3》不改动既有系统的Quota实例:

如果你的主机原先没有想到要设置成为邮件主机,所以并没有规划将邮件信箱所在的/var/spool/mail目录独立成为一个分区,然后目前你的主机已经没有办法新增或分出任何新的分区了,我们知道quota是针对整个文件系统进行设计的,因此你是否就无法针对mail的使用量给予quota的限制呢;此外,如果你想要让用户的邮件信箱与主文件 夹的总体磁盘使用量为固定,那又该如何是好,由于/home及/var/spool/mail根本不可能是同一个文件系统(除非是都不分区,使用根目录,才有可能整合在一起),所以该如何进行这样的quota限制呢?

其实没有那么难,既然quota是针对整个文件系统来进行限制,假设你又已经有/home这个独立的分区了,那么你只要:

1)将/var/spool/mail这个目录完整地移动到/home下面;

2)利用ln -s /home/mail /var/spool/mail 来新建连接数据;

3)将/home进行quota限额设置;

linux内核 quota,磁盘配额(Quota)的应用与实践相关推荐

  1. (22)Linux基础-系统磁盘配额quota

    一. 磁盘配额概念 Linux系统是多用户任务操作系统,在使用系统时,会出现多用户共同使用一个磁盘的情况,如果其中少数几个用户占用了大量的磁盘空间,势必压缩其他用户的磁盘的空间和使用权限.因此,系统管 ...

  2. linux-如何限制普通用户的磁盘使用空间-磁盘配额quota,Linux系统下如何进行磁盘配额Quota的设置...

    Linux如何进行磁盘配额quota的设置 通过quota进行磁盘配额,可以控制用户对磁盘空间和文件的控制,我们以一个实例作为说明,对2个用户user01.user02分别进行磁盘使用空间和创建文件的 ...

  3. (linux)quota磁盘配额管理

    quota 磁盘配额管理 1.磁盘配额的概念 quota 磁盘配额功能只在指定的文件系统(分区)内有效,未设置配额的文件系统不受限制. quota 针对指定的用户账号.组账号进行限制,其他用户或组不受 ...

  4. linux磁盘配额edquota,Linux磁盘配额Quota配置详解(2)

    实践quota Quota使用的方面很广,不过,一般的用途有以下这些: 限制某一群组所能使用的最大磁盘配额(使用群组限制): 你可以将你的系统上的用户分门别类,有点像是目前很流行的付费与免付费会员制的 ...

  5. linux中quota信息查看,linux磁盘配额quota学习笔记

    1.Linux的磁盘配额quota的作用. quota的作用就是限制user和group在磁盘的使用限制,可以限制使用的空间大小block和建立的文件数量inode,一般用于限制block. 2.查看 ...

  6. linux磁盘配额quota,Linux磁盘配额-Quota

    写在前面的话: 磁盘配额(quota)一直很有用.举个例子,如果你曾经申请过网络的邮件服务,那么肯定就会明白什么是20M的邮件空间.30M的免费网页空间,这个20M.30M是怎么定义出来的呢?就是通过 ...

  7. linux quota硬盘,Linux 磁盘配额 quota

    Linux 磁盘配额 quota Quota一直就是个很有用的东西.如果您曾经申请过网络的mail服务时,那么肯定就会明白什么是20MB的邮件空间. 30MB的免费网页空间,这个20MB,30MB就是 ...

  8. Ext4 Project Quota磁盘配额使用介绍

    Disk quota磁盘配额技术是一种限制文件系统空间使用的技术.在Linux系统中,系统管理员可以通过该技术限制其他用户在指定的容量范围内使用文件系统,从而防止个别用户过量使用而影响到其他的用户,因 ...

  9. linux-如何限制普通用户的磁盘使用空间-磁盘配额quota,Linux-如何限制普通用户的磁盘使用空间-磁盘配额quota...

    Linux-磁盘配额quota 磁盘配额满足条件 1. 内核大于等于2.4 2. 对用户或组设置 3. 对一个单独的文件系统操作 实验环境: 一.修改/etc/fstab 设置/分区 支持磁盘配额功能 ...

  10. quota 磁盘配额管理

    quota 磁盘配额管理 1.磁盘配额的概念: quota磁盘配额功能只能在指定文件系统(分区)内有效,未设置配额的文件不收限制. quota针对指定的用户账号.组账号进行限制,其他用户或组不收影响 ...

最新文章

  1. 学python需要英语基础吗-学python需要英语基础吗
  2. Spring中bean的scope详解
  3. 三、糖醋鲤鱼(Sweet and sour carp)
  4. Linux常用编辑器使用:vi、vim、nano、gedit
  5. Lambda表达式的省略模式【应用】
  6. 全国计算机等级考试题库二级C操作题100套(第66套)
  7. 无法获取保存在session中的验证码
  8. 线代总结1 线性代数中的线性方程组
  9. java zk_zk框架:zul文件,纯Java或混合更好的性能
  10. 如何制作自己的网课网站 需网课查课插件
  11. 光流的概念以及 Lucas-Kanade 光流法
  12. 使用Glide加载圆角矩形图片、圆形图片
  13. 《父与子的编程之旅——Python》(一)序章-第一章-第二章
  14. java 制作 winrar,windows 上java调用winrar压缩文件为rar 格式
  15. springboot2.0整合redis报错
  16. qsort的基本用法
  17. 全国高等学校计算机等级考试大纲,全国高等学校计算机等级考试大纲.doc
  18. 2021全国电设(F题)openmv的图像识别之数字识别
  19. nyoj 145 聪明的小珂
  20. SpringSecurity 学习笔记分享 记录历程开篇

热门文章

  1. 工具 01 远程连接工具
  2. 类似文件服务器功能的系统软件有什么,局域网内如何打造一个类似360网盘的文件服务器?...
  3. C语言 九宫格输入法
  4. 学一点Wi-Fi:SAE
  5. 随机抽取人员回答问题FLASH
  6. tensorflow scope的意义
  7. Linux UBI子系统设计初探
  8. java 避免gc_Java GC机制
  9. 【运筹学】单纯形法的理论推导和定理证明
  10. 计算机网络实验四 VLAN配置实验