什么是quota

『quota』就字面上的意思来看,呵呵!就是有多少『限额』的意思啦!如果是用在零用钱上面,就是类似『有多少零用钱一个月』的意思之类的。如果是在容量空间上面呢?以Linux来说,呵呵!就是有多少容量限制的意思。

在Linux系统中,由于是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生,如果其中有少数几个使用者大量的占掉了硬盘空间的话,那势必压缩其它使用者的使用权力!因此管理员应该适当的开放硬盘的权限给使用者,以妥善的分配系统资源!避免有人抗议呀!举例来说,我们使用者的预设家目录都是在/home底下,如果/home是个独立的partition,他大概有10G好了,而/home底下共有30个人,也就是说,每个使用者平均应该会有333MB的空间才对。偏偏有个使用者在他的家目录底下塞了好多只影片,占掉了8GB的空间,想想看,是否造成其它正常使用者的不便呢?这个时候就得要靠『quota』的帮忙了!

Quota的一般用途

quota比较常使用的几个情况是:

针对Web服务器,例如:每个人的网页空间的容量限制!

针对Mail服务器,例如:每个人的邮件空间限制。

针对File服务器,例如:每个人最大的可用网络硬盘空间。

在Linux当中,使用来作为硬盘空间管理的就是所谓的quota这个东东啦!

Quota的使用限制

使用这个模块要有几个步骤,底下就分别说说吧!另外要特别注意的是,使用quota时有几个基本的限制需要谈一谈:

仅针对整个partition:

quota实际在运作的时候,是针对『整个partition』进行限制的,例如:如果你的/dev/hda5是挂载在/home底下,那么在/home底下的所有目录都会受到限制!

核心必须支持quota:

Linux系统核心必须有支持quota这个模块才行:如果您是使用FC4的预设核心,嘿嘿!那恭喜你了,你的系统已经预设有开放quota这个模块啰!如果您是自行编译核心的,那么请特别留意您是否已经『真的』开启了quota这个模块?至于核心编译的过程我们会在未来进行说明!

Quota的记录文件:

目前新版的Linux distributions如:Fedora Core 4与SuSE Server9等使用的是Kernel2.6.xx的核心版本,这个核心版本支持新的quota模块,使用的预设档案(aquota.user,aquota.group)将不同于旧版本的quota.user,quota.group!(多了一个a!)而由旧版本的quota可以藉由convertquota这个程序来转换呢!

只对一般身份使用者有效:

这就有趣了!并不是所有在Linux上面的账号都可以设定quota呢,例如root就不能设定quota,因为整个系统所有的数据几乎都是他的!^_^

quota这支程序对硬盘配额的限制项目:

quota这个程序针对整个partition的限制项目主要分为底下几个部分:

soft:

这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过soft,但必需要宽限时间之内将磁盘容量降低到soft的容量限制之下!

hard:

这是『绝对不能超过』的容量!跟soft相比的意思为何呢?通常hardlimit会比softlimit为高,例如网络磁盘空间为30MB,那么hardlimit就设定为30MB,但是为了让使用者有一定的警戒心,所以当使用空间超过25MB时,例如使用者使用了27MB的空间时,那么系统就会警告使用者,让使用者可以在『宽限时间内』将他的档案量降低至25MB(亦即是softlimit)之内!也就是说,soft到hard之间的容量其实就是宽限的容量啦!可以达到针对使用者的『警示』作用!

宽限时间:

那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了softlimit,却还没有到达hardlimit时,那么在这个『宽限时间』之内,就必需要请使用者将使用的磁盘容量降低到softlimit之下!而当使用者将磁盘容量使用情况超过softlimit时,『宽限时间』就会自动被启动,而在使用者将容量降低到softlimit之下,那么宽限时间就会自动的取消!

基本的quota命令介绍

在开始进行quota的实践之前,我们得来了解一下quota要使用的指令!基本上分为两种,一种是查询功能(quota、quotacheck、quotastats、warnquota、repquota),另一种则是编辑quota的内容(edquota、setquota)。下面我们来谈一谈这些基本的指令吧!

/etc/mtab

怪了!不是说好要说明quota相关指令的吗?干嘛提这个档案系统(Filesystem)实际挂载的记录文件?呵呵!要注意了~当我们使用quota的时候,基本上,系统会去搜寻:『系统上具有quota参数的partition』所以啰,当我们要使用quota的功能时,我们的Filesystem必须已经支持quota才行。一般来说,我们是以编辑/etc/fstab后,再重新挂载Filesystem的方法来让系统的Filesystem支持quota的!这个概念可是很重要的喔!^_^

quota

[root@linux~]# quota [-uvsl] [username]

[root@linux~]# quota [-gvsl] [groupname]

参数:

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

-g :后面可接groupname,表示显示出该群组的quota限制值。

-v :显示每个filesystem的quota值;

-s :可选择以inode或磁盘容量的限制值来显示;

-l :仅显示出目前本机上面的filesystem的quota值。

范例:

范例一:秀出目前root自己的quota限制值:

[root@linux~]# quota -guvs

quotacheck

[root@linux ~]# quotacheck [-avug] [/mount_point]

参数:

-a :扫瞄所有在/etc/mtab内,含有quota支持的filesystem,加上此参数后,/mount_point可不必写,因为扫描所有的filesystem了嘛!

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

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

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

-M :『强制』进行quotacheck的扫描。

范例:

范例一:将所有的在/etc/mtab内,含有quota支持的partition进行扫描

[root@linux ~]# quotacheck -avug

quotacheck: Can't find filesystem to check or filesystem not mounted with quota option.

不要紧张,这是正常的现象~因为您尚未启用quota的参数!

关于quota参数的下达方法,我们会在稍后说明。如果正常的进行扫描,会像下面这样:

[root@linux ~]# quotacheck -avug

quotacheck: Scanning /dev/hdb1 [/disk2] done

quotacheck: Checked 3 directories and 4 files

[root@linux ~]# ll /disk2

total 32

-rw------- 1 root root 6144 Sep 5 14:56 aquota.group

-rw------- 1 root root 6144 Sep 5 14:56 aquota.user

drwx------ 2 root root 16384 Jun 25 16:22 lost+found

第一次操作quotacheck可能会有一些错误讯息发生,那应该是正常的!

如果使用ls -l去查阅一下有quota支持的那个mount point,若有出现aquota.group及aquota.user,那应该就是已经建立好了quota记录文件了!

范例二:强制扫描已挂载的filesystem

[root@linux ~]# quotacheck -avug -m

有些时候,在某些Linux distributions上面,进行quotacheck时,可能会出现如下的错误讯息:

quotacheck: Cannot get quotafile name for /dev/hda3

quotacheck: Cannot get quotafile name for /dev/hda3

果真如此的话,那么你可以如同上面一般,加上-m的参数来『强制』扫描。

也可以手动先建立记录文件,然后再扫描,如下所示:

[root@linux ~]# touch /disk2/aquota.user; touch /disk2/aquota.group

[root@linux ~]# quotacheck -avug

必须要注意的是,我这里是以/disk2作为一个测试的mount point,您的挂载点不一定会和范例一样!

这个命令主要的目的在扫描某一个磁盘的quota空间,他会针对该partitions进行扫描,并且,由于该磁盘若持续运作时,可能扫描的过程中,文件可能会增减,造成quota扫描的错误发生,因此,当使用quotacheck时,该磁盘将『自动被设定成为只读扇区(read-only)』;至于扫描完毕之后,扫瞄所得的磁盘空间结果会写入该扇区最顶端。(例如:在例子中,扫描/disk2这个/dev/hdb1的扇区,如果是初次扫描,那么扫描完毕之后会产生aquota.user与aquota.group,会放置在/disk2/aquota.user与/disk2/aquota.group底下!而如果是建立quota后的扫描,那么就会更新这两个文件!)另外,Linux也特别强调quota在使用的时候,需要特别注意在reboot时,得先将quota关闭才好!

此外,由于新版的Linux distribution在quota的设计上似乎有点小问题,有时候无法完整的进行quotacheck,发生如同上表的情况,解决的方法就是主动手动的建立quotafile即可!例如上面的范例二所显示的。

edquota

[root@linux ~]# edquota [-u username] [-g groupname]

[root@linux ~]# edquota -t <==修改宽限时间

[root@linux ~]# edquota -p username_demo -u username

参数:

-u :后面接账号名称。可以进入quota的编辑画面(vi)去设定username的限制值;

-g :后面接群组名称。可以进入 quota 的编辑画面(vi)去设定groupname的限制值;

-t :可以修改宽限时间(就是超过quota的soft limit值后,还能使用硬盘的宽限期限)

-p :复制范本。那个username_demo为已经存在并且已设定好quota的使用者,

意义为『将username_demo这个人的quota限制值复制给username』!

范例:

范例一:设定dmtsai这个用户的quota限制值

[root@linux ~]# edquota -u dmtsai

Disk quotas for user dmtsai (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/hdb1 0 0 0 0 0 0

进入编辑画面后,以vi的相关行为进行编辑喔!

我们可以看到被编辑的用户是dmtsai,

而下面共有七个字段,每个字段的意义我们将在底下的说明继续介绍。而假设我们对于dmtsai的限制是30MB的话,那么:

Disk quotas for user dmtsai (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/hdb1 0 25000 30000 0 0 0

然后就可以储存后离开!

范例二:将dmtsai的quota限制值(30MB)复制给vbird1这个用户

[root@linux ~]# edquota -p dmtsai -u vbird1

范例三:修订宽限时间

[root@linux ~]# 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/hdb1 7days 7days

预设的恕限时间是7天!你当然可以修订时间!

这个命令就是在编辑每一个『个人』或者是『群组』的quota数值!通常我们以edquota –u username或者是edquota -g groupname来编辑个人与群组的quota设定值。不过,或许您会觉得一个一个分配似乎很慢的样子!那么您也可以直接copy一个人的设定值给其它人,就如同上面第二个例子,利用已经建立好的dmtsai来建立vbird1这个人的quota限额!这个指令可是很重要的呦!另外,范例一当中出现的那七个字段代表的意义我们得要谈一谈啊:

filesystem:

代表这个quota是针对哪一个partition的意思。以范例一的情况来说,指的是/dev/hdb1啰!也就是/disk2那个目录底下的quota限制值啦!

blocks:

这个是目前使用者dmtsai(uid501)在/dev/hdb1这个filesystem(参考上面一个信息),所消耗的磁盘容量,也就是目前的使用掉的空间啦!单位是Kbytes喔!这个信息是quota程序自己计算出来的,所以请不要修改他!

soft与hard:

这个是目前的dmtsai使用者在这个filesystem之内的quota限制值!至于soft与hard的意思就如同前一节最后面提的那个意思啦!soft代表的是一个『警告』限值,hard则是一个『不可超过的限值』,soft与hard中间的差值则为宽限的数值。而当soft与hard数值为0的时候,表示『没有限制』的意思!而数值的单位仍是Kbytes喔!

inodes:

是目前使用掉inode的状态,也是quota自己计算出来而得到的,所以不要去变更他。一般而言,inode不容易控制,所以您可以不必去限制inode呢!

quotaon

[root@linux ~]# quotaon [-avug]

[root@linux ~]# quotaon [-vug] [/mount_point]

参数:

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

-g :针对群组启动 quota(aquota.group)

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

-a :根据/etc/mtab内的filesystem设定启动有关的quota,若不加-a的话,

则后面就需要加上特定的那个filesystem!

范例:

范例一:启动所有的具有quota的filesystem

[root@linux ~]# quotaon -auvg

/dev/hdb1 [/disk2]: group quotas turned on

/dev/hdb1 [/disk2]: user quotas turned on

范例二:仅启动/disk2里面的user quota设定值:

[root@linux ~]# quotaon -uv /disk2

这个命令是在启动quota的!不过,由于这个指令是启动aquota.group与aquota.user的,所以您就必须要先完成quotacheck的工作了!然后简单的下达quotaon -a即可启动!

quotaoff

[root@linux ~]# quotaoff [-a]

[root@linux ~]# quotaoff [-ug] [/mount_point]

参数:

-a :全部的filesystem的quota都关闭(根据/etc/mtab)

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

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

范例:

范例一:

[root@linux ~]# quotaoff -a

这个命令就是关闭了quota的限制啦!

配置linux磁盘配额前,Linux磁盘配额Quota配置详解相关推荐

  1. linux系统四个组成部分,Linux系统由哪几部分组成?系统详解(干货)

    原标题:Linux系统由哪几部分组成?系统详解(干货) 我们常说的Linux一般指的是系统内核,基于Linux系统内核的操作系统叫Linux发行版操作系统,像redhat.centos.ubuntu和 ...

  2. linux在vi创建文件,Linux下创建文本文件(vi/vim命令使用详解)

    vi test.txt 或者 vim test.txt 再或者 touch test.txt vim是vi的升级版,指令更多,功能更强. 下面是收集的vim用法,当在vim里面要实现退出,首先要做的是 ...

  3. linux怎么读其实很简单 微星为你详解Z77主板BIOS设置

    近期,微星科技发布了大量的7系主板,它们全部配备厂商最新的军规三代组件技术,并且同时配备了PCI-E3.0,USB3.0还有SATA3.0技术,所以我们可以称呼它们为微星3.0主板.随着微星Z77主板 ...

  4. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  5. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  6. 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  7. linux中cat、more、less命令区别详解

    linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...

  8. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  9. linux top VIRT RES SHR SWAP DATA内存参数详解

    Linux top VIRT RES SHR SWAP DATA内存参数详解 其实很早之前就想开博客,写一写码农几年自己积攒下来的知识与见解.看过很多文章有过很多感触,有些收获很值得梳理一下认真思考反 ...

  10. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

最新文章

  1. php 5.3 wamp,wamp php 5.3.0 升级5.3.3
  2. 电力系统通信站和设备管理系统分析设计
  3. OSChina 周三乱弹 ——相亲妹子说了一句让我肾疼的话
  4. LeetCode LCS 03. 主题空间(广度优先搜索BFS)
  5. 数据装载全/存量直接装载到目标表_09
  6. jquery代码小片段
  7. 太畅销了!AirTag送货时间延长至4-5周
  8. thinkphp实现文件上传
  9. Java多态的理解,真实开发详解,带编程,通俗白话文,简单易懂
  10. 黄山IE修复专家免费版 v9.3
  11. js任意进制转换(二进制,八进制,十进制...三十六进制)
  12. python拼图_利用python制作拼图小游戏的全过程
  13. php yii2 ddd,Xunsearch SDK for PHP/yii2
  14. Java输出流FileOutputStream使用详解
  15. python爬上市公司信息_实战项目 1:5 行代码爬取国内所有上市公司信息
  16. Graphx社区发现算法学习
  17. English Learning - L2-3 英音地道语音语调 小元音 [ʌ] [ɒ] [ʊ] [ɪ] [ə] [e] 2023.02.27 周一
  18. 32 回归分析——一元线性回归模型
  19. SEO优化工具-免费SEO优化工具下载-SEO优化工具大全中心
  20. mysql主要学什么_mysql学什么

热门文章

  1. c语言高亮字符,C语言语法高亮工具
  2. 程序员打造影响力常犯的 3 个错
  3. QOS-CBWFQ\QOS-LLQ\QOS-PQ\QOS-CQ\QOS-WFQ
  4. 介绍一款开源、高性价比的在线教育建站系统
  5. 爬虫项目1[爬取小猪短租数据]
  6. 如何提高射频信号发生器的性能
  7. Statistical Language Model笔记+几个简单平滑算法
  8. [渝粤教育] 中国地质大学 大学语文 复习题
  9. 人工智能与机器学习密不可分,和图像处理、模式识别有什么关系?
  10. android打印机字体大小,热敏打印机字体大小设置,怎么设置打印机字体