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

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

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

  实践quota

  Quota使用的方面很广,不过,一般的用途有以下这些:

  限制某一群组所能使用的最大磁盘配额(使用群组限制):

  你可以将你的系统上的用户分门别类,有点像是目前很流行的付费与免付费会员制的情况,你比较喜好的那一群的使用配额就可以给高一些!呵呵!^_^

  限制某一用户的最大磁盘配额(使用用户限制):

  在限制了群组之后,您也可以再继续针对个人来进行限制,使得同一群组之下还可以有更公平的分配!

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

  如果是分为付费与免付费会员的『邮件主机系统』,是否需要重新再规划一个硬盘呢?也不需要啦!直接使用Link的方式指向/home(或者其它已经做好的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设定的步骤就只是这样而已,简单吧!我们下面就直接来用一个范例介绍一下整个流程,好让您更清楚的了解到整个步骤!范例是这样的:

  1. Linux主机里面主要针对quser1及quser2这两个用户来进行磁盘配额,且这两个用户都是挂在qgroup群组里面的。

  2. 每个使用者总共有50MB的磁盘空间(不考虑inode)限制!并且soft limit为45MB;

  3. 而宽限时间设定为1天,也就是说,这两个人可以突破45MB的限制,但是在一天之内必须要将多余的文件删除,否则将无法使用剩下的空间(也就是说,这个账号大概就不能进行新建文件的工作了);

  4. gquota这个群组考虑最大限额,所以设定为90MB好了!

  多说无用,我们就实际来进行!

  1. 准备好测试的环境,用户与群组的建立:

  这两个账号应该是不存在我们的系统的,所以,赶紧将他设置上去吧!

  [root@linux ~]# groupadd qgroup

  [root@linux ~]# useradd -m -g qgroup quser1

  [root@linux ~]# useradd -m -g qgroup quser2

  [root@linux ~]# passwd quser1

  [root@linux ~]# passwd quser2

  2. 建立好filesystem的quota支持:

  由于quota较完整的支持是需要在ext2/ext3的Linux文件系统下才可以启动,所以建议你就必须要将准备开启quota的磁盘启动参数,写入 quota的磁盘设定才行(/etc/fstab)!以例子而言,想要在/disk2下进行quota的限制quser1,quser2这两个用户!这是 因为这个/disk2是一个独立的扇区,这可以使用df来查询。此外,必需特别留意的是,最好不要以根目录亦即是/进行quota!否则容易有些问题!另 外,不要针对root做quota!反正做了也没用!

  [root@linux ~]# df

  Filesystem 1K-blocks Used Available Use% Mounted on

  /dev/hda1 5952252 3193292 2451720 57% /

  /dev/hdb1 28267608 77904 26730604 1% /disk2

  /dev/hda5 9492644 227252 8775412 3% /disk1

  嗯!/disk2是独立的partition,并且他的设备名为/dev/hdb1,好了!那么我就必须要启动/disk2这个/dev/hdb1的 quota档案格式,好了!那么由于文件格式的设定是写在/etc/fstab里头,所以我们以vi来编辑他吧!只要在/etc/fstab里头增加了 usrquota、grpquota就可以啦!(注:请特别留意,这两个项目请『务必』不要写错了!请在写入/etc/fstab之前好好的再次检查,因 为写错之后,很有可能造成系统无法开机,虽然写错的机率不高,但是很有可能!)

  [root@linux ~]# vi /etc/fstab

  LABEL=/ / ext3 defaults 1 1

  LABEL=/disk1 /disk1 ext3 defaults 1 2

  LABEL=/disk2 /disk2 ext3 defaults,usrquota,grpquota 1 2

  /dev/hda3 swap swap defaults 0 0

  注意到我们所需要设定的那个/disk2的那一行,在第四字段多了usrquota,grpquota注意,在『defaults,usrquota,grpquota』之间都没有空格!

  这样就算加入了quota的磁盘格式了!不过,由于真正的quota在读取的时候是读取/etc/mtab 这个档案的,偏偏这一个档案需要重新开机之后才能够以/etc/fstab的新数据进行改写!所以这个时候你可以选择:

  重新开机(reboot);

  重新remount filesystem来启动设置!

  对不太喜欢重新开机的人,可以这样做:

  [root@linux ~]# umount /dev/hdb1

  [root@linux ~]# mount -a

  [root@linux ~]# grep '/disk2' /etc/mtab

  /dev/hdb1 /disk2 ext3 rw,usrquota,grpquota 0 0

  事实上,也可以利用mount的remount功能!

  [root@linux ~]# mount -o remount /disk2

  这样我们就已经成功的将filesystem的quota功能加入了!另外,在这里是以ext3这个磁盘格式来测试quota的!

  3. 扫描磁盘的用户使用状况,并产生重要的aquota.group与aquota.user:

  接下来就是要来扫描一下我们所需要的磁盘到底有没有多余的空间可以让我们来设定quota呢?并且将扫描的结果输出到这个磁盘的最顶层去(也就是 /disk2下)这个时候就需要quotacheck这个命令的帮忙了!使用quotacheck就可以轻易的输出了将所需要的数据!并在/disk2下 会产生aquota.group与aquota.user这两个文件!

  [root@linux ~]# quotacheck -avug

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

  quotacheck: Checked 3 directories and 4 files

  [root@linux ~]# ll /disk2

  -rw------- 1 root root 6144 Sep 6 11:44 aquota.group

  -rw------- 1 root root 6144 Sep 6 11:44 aquota.user

  使用quotacheck就可以轻易的将所需要的数据给他输出了!但是很奇怪的是,在某些Linux 版本中,不能够以aquota.user(group)来启动quota,这有可能是因为旧版quota的关系,所以就另外做了一个link文件来欺骗quota:

  [root@linux ~]# cd /disk2

  [root@linux ~]# ln -s aquota.user quota.user

  [root@linux ~]# ln -s aquota.group quota.group

  除非您的Linux distributions是比较旧的版本,否则不会有这个问题,所以,这个动作你不一定要进行!

  4. 启动quota的限额:

  再来就是要启动quota啦!启动的方式也是很简单的!就是使用quotaon -av即可:

  [root@linux ~]# quotaon -avug

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

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

  注意:要看到上面有个turned on的出现,才是真的成功了!

  5. 编辑使用者的可使用空间:

  由于我们有两个用户要设置,先来设置quser1好了,使用edquota就对了:

  [root@linux ~]# edquota -u quser1

  Disk quotas for user quser1 (uid 502):

  Filesystem blocks soft hard inodes soft hard

  /dev/hdb1 0 45000 50000 0 0 0

[1] [2] 下一页


推荐阅读
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
author-avatar
顏颖季珮琦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有