热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux磁盘配额Quota配置详解(1)

文章标题:Linux磁盘配额Quota配置详解(1)。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  Quota一直就是个很有用的东西!怎么说呢?举个例子来说明,如果您曾经申请过网络的mail服务时,那么肯定就会明白什么是20MB的邮件空间、 30MB的免费网页空间,好了,这个20MB,30MB是怎样定义出来的呢?哈哈!没错,就是quota这个东西搞出来的!如果我们要限制用户使用硬盘的 容量使用大小,嗯!来这里看看就对了!

  什么是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』所以???蔽颐且?褂?uota的功能时,我们的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

  范例二:秀出dmtsai这个使用者的磁盘配额

  [root@linux~]# quota -vs -udmtsai

  注意一下这两个范例,如果您的系统上面尚未有任何的quota支持的filesystem时,

  使用这两个范例时,『不会有任何信息列出来』!不要以为发生错误了!

  这个命令仅是使用来『显示(display)』目前某个群组或者某个使用者的 quota 限值!您可以使用来观察一下!

  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记录文件了!

[1] [2] 下一页


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
author-avatar
可爱鬼猫_380
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有