上一篇文章已经做了磁盘配额实践的大概规划,下面我们就开始一步一步的来实践一下。

1、手工建立一个5GB的分区

手工建立一个5GB的分区/dev/sdb2,挂载到/disk目录下。

手工建立分区看之前使用fdisk命令进行手工分区文章可解决。

查看系统分区,可以看到/dev/sdb2分区已经挂载。

查看/dev/sdb2分区大小,约为5GB。

如下图所示:

2、建立需要做限制的三个用户

如下所示:

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# passwd user1
[root@localhost ~]# passwd user2
[root@localhost ~]# passwd user3

3、在分区上开启磁盘配额功能

重新挂载/disk分区,并加入用户和用户组的磁盘配额功能,执行下面命令:

[root@localhost ~]# mount -o(开启) remount(重新挂载),usrquota(用户配额),grpquota(组配额) /disk

查看系统分区,我们可以看到命令生效了,/dev/sdb2分区已经增加了磁盘配额权限。

以上操作只是临时生效,要想永久生效,则需要修改/etc/fstab文件,改成如下:

[root@localhost ~]# vi /etc/fstab
/dev/sdb1 /disk ext4 defaults,usrquota,grpquota 0 0

注意:

修改配置文件如果想要生效,必须重启系统,否则需要把分区重新挂载一遍。

执行命令:[root@localhost ~]# mount -o remount /disk

4、建立磁盘配额的配置文件

需执行如下命令:

[root@localhost ~]# quotacheck [选项] [分区名]

选项:

  • -a:扫描/etc/mtab文件中所有启用磁盘配额功能的分区。如果加入此参数,命令后面就不需要加入分区名了。
  • -c:不管原有的配置文件,重新扫描并建立新的配置文件。
  • -u:建立用户配额的配置文件,也就是生成aquota.user文件。
  • -g:建立组配额的配置文件,会生成aquota.group文件。
  • -v:显示扫描过程。
  • -m:强制以读写的方式扫描文件系统,和-M类似。一般扫描根分区时使用。
  • -f:强制扫描文件系统,并写入新的配置文件。一般扫描新添加的硬盘分区时使用

常用选项[root@localhost ~]# quotacheck -avug

提示:执行quotacheck命令前,需要关闭SELinux,否则会报错。

执行命令:[root@localhost ~]# getenforce

getenforce命令是查询当前系统下SELinux的状态,Enforcing表示强制生效中。

  • 关闭方式一(临时)

    [root@localhost ~]# getenforce 0(关)/1(开)
  • 关闭方式二(永久)

    [root@localhost ~]# vim /etc/selinux/config(修改配置文件)



    Enforcing换成disabled,就是永久生效了。但是永久生效需要重启系统。

使用临时关闭方式,再次查看SELinux状态

执行命令:[root@localhost ~]# getenforce

显示Permissive,宽容的意思,就是我不会在管你,但是有危险操作会提醒你。

关闭SELinux,就可以执行quotacheck命令了,因为不用组配额,

执行命令:[root@localhost ~]# quotacheck -avu

结果如下:

出现了很多内容,但是命令已经生效了,Scanning /dev/sdb2 [/disk] done说明磁盘已扫描完成。其他内容说的是没有找到一些旧文件。

我们进入/disk目录,如果看到aquota.user文件,就说明用户配额配置文件已经建立。(同理aquota.group代表组配额配置文件)

注意:如果需要给根分区开启配额功能,需要进行如下操作:

# 开启分区的配额功能
[root@localhost ~]# vi /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults,usrquota,grpquota 1 1 # 重新挂载分区
[root@localhost ~]# mount -o remount / # 建立磁盘配额的配置文件的时候多加一个m选项
[root@localhost ~]# quotacheck -avum

说明:

如果我们自动扫描/分区建立配额配置文件时,因为/分区已经挂载成读写系统,而quotacheck需要把分区先挂载成只读分区,然后建立配置文件,最后再挂载回来,所以不能直接在/分区建立配置文件。这时就需要使用-m强制以读写方式扫描文件系统。

5、开始设置用户和组的配额限制

实现磁盘配的命令如下:

[root@localhost ~]# edquota [选项] [用户名或组名]

选项:

  • -u用户名:设定用户配额。
  • -g组名:设定组配额。
  • -t:设定宽限时间。
  • -p:复制配额限制。如果已经设定好某个用户的配额限制,其他用户的配额限制如果和这个用户相同,那么可以直接复制配额限制,而不用都手工指定。

需求:我们给user1用户设定的配额限制是:磁盘空间软限制是40MB,硬限制是50MB;文件个数的软限制是8个,硬限制是11个(稍微小一点,一会测试时方便测试)。

执行命令:[root@localhost ~]# edquota -u user1

edquota命令进入之后,就是标准的vim操作方法,内容如下:

#磁盘配额是设定用户user1(UID是500)
Disk quotas for user user1(uid 500): #分区名 已占用容量 软限制 硬限制 己占用文件数 软限制 硬限制
Filesystem blocks soft hard inodes soft hard
/dev/sdb2 0 0 0 0 0 0

说明

  • 进入edquota命令后的内容说明:针对user1用户的磁盘配额,user1的用户ID是500。user1针对/dev/sdb2分区进行磁盘配额,之后就是6项就是针对容量和文件数的配额设置。
  • 特别注意:blocksinodes两个选项一定不能手动修改,这两项是系统检测出来user1用户在/dev/sdb2分区上所占用的空间和所占用的文件数。需要我们手动配置的是后两项 soft软限制和hard硬限制。
  • 提示:[root@localhost ~]# edquota -u user1命令直接写用户名就可以,后边不用接任何参数,不用你再指定哪个分区,因为哪些分区开启了磁盘配额,再上面/etc/fstab文件中写的很清楚。还有我们进入到edquota命令之后,开启磁盘配额的分区情况都写的很清楚,如上面内容。

开始进行配置,按照上面的需求配置如下:

Disk quotas for user user1(uid 500):

#分区名   已占用容量  软限制  硬限制  己占用文件数  软限制  硬限制
Filesystem blocks soft hard inodes soft hard
/dev/sdb2 0 40000 50000 0 8 11 # 注意:容量默认单位是KB。还有在修改文件的时候不用对齐,是七列就行。

退出方式和vim编辑器一样。

6、启动和关闭配额

(1)启动配额

配额的配置完成,接下来只需要启动配额就大功告成了。

启动命令如下:

[root@localhost ~]# quotaon [选项] [分区名]

选项:

  • -a:依据/etc/mtab文件启动所有的配额分区。如果不加-a,后面就一定要指定分区名。
  • -u:启动用户配额。
  • -g:启动组配额。
  • -v:显示启动过程的信息。
#启动/disk 分区的配额
[root@localhost ~]# quotaon -avu /disk/
/dev/sdb2[/disk]:user quotas turned on(意思是针对/dev/sdb2分区的用户配置已经开启) # 如果有组,还会有一条提示:/dev/sdb2[/disk]:group quotas turned on

(2)关闭配额

命令如下:

[root@localhost ~]# quotaoff [选项] [分区名]

选项

  • -a:依据/etc/mtab文件,关闭所有的配额分区。如果不加-a,后面就一定要指定分区名。
  • -u:关闭用户配额。
  • -g:关闭组配额。

例如:依据/etc/mtab文件关闭配额分区。

执行命令:[root@localhost ~ ] # quotaoff -a

7、磁盘配额的查询

(1)quota命令查询用户或用户组配额:

[root@localhost ~]# quota [选项] [用户名或组名]

选项:

  • -u用户名:查询用户配额。
  • -g组名:查询组配额。
  • -v:显示详细信息。
  • -s:以习惯单位显示容量大小,如M,G。

执行命令:[root@localhost ~]# quota -uvs user1

结果如下图:

(2)repquota命令查询分区的文件系统配额

[root@localhost ~]# repquota [选项] [分区名]

选项:

  • -a:依据/etc/mtab文件查询配额。如果不加-a选项,就一定要加分区名。
  • -u:查询用户配额。
  • -g:查询组配额。
  • -v:显示详细信息。
  • -s:以习惯单位显示容量大小。

执行命令:[root@localhost ~]# repquota -auvs

结果如下图:

可以看到上图,在哪一个分区上,所有用户的配额情况。

两个命令,习惯用哪个都行。

8、对配置的磁盘配额进行测试

测试的前提,用user1用户,进入到/disk目录进行测试,user1用户对/disk目录要有读写权限。

执行命令:建立test文件,指定大小60MB。

[user1@localhost disk]$ dd if=/dev/zero of=/disk/test bs=1M count=60

命令说明:dd命令是做磁盘对拷的。其实可以把dd命令看成是cp命令,dd命令功能更多一些,比如可以指定复制文件的大小等。if表示源文件,of是目标文件,就是说要把if的文件复制到of的位置。bs是一次复制1MB,执行60次。这就是上边命令的意思。

执行命令结果如下:

查看test文件的大小,可以看到test文件并没有超过50MB。

我们再来查看一下user1用户的磁盘配额

可以看到用户的容量配额已经被占满了。

文件个数的测试就不记录了。

自己创建文件测试一下即可。

9、配额复制(扩展1)

user2用户的配额值和user1用户完全一样,我们就可以使用user1用户作为模板进行复制。这样我们如果需要建立大量的配额值一致的用户时,就会非常方便,不用一个个手工建立了。

配额复制命令如下:

# 命令 -p 源用户 -u 目标用户
[root@localhost ~]# edquota -p user1 -u user2

再来查看一下user2用户的磁盘配额,发现user2用户的磁盘配额已经被改变,和user1用户的一样了。

注意:

如果需要批量配置用户的磁盘配额,这种方式也不太好用,因为你需要先有一个用户配额模板,才可以批量配额给用户。但是这个用户模板需要手动创建,因为执行edquota命令,进入磁盘配额编辑的时候是和vim操作一样的,不能通过命令执行的,这点需要注意一下。下面的非交互设定用户磁盘配额可以很好的解决上面问题。

10、非交互设定用户磁盘配额(扩展2)

命令格式如下:

[root@localhost ~]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名

执行命令如下:

# 建立用户
[root@localhost ~]#useradd user3
[root@localhost ~]#passwd user3 #设定用户在/disk 分区的容量软限制为40MB,硬限制50MB。文件个数软限制8个,硬限制10个。
[root@localhost ~]#setquota -u user3 40000 50000 8 10 /disk

再来查看一下user3用户的磁盘配额,已经生效了。

如下图所示:

这个命令在写脚本批量设置时更加方便。当然写脚本时也可以先建立一个模板的用户,设定好磁盘配额,再进行配额复制,也是可以的。

来个小总结:配置磁盘配额的方式有三种

  • edquota命令方式,基本方式。
  • 配额复制的方式。
  • 非交互设定用户磁盘配额。

11、修改宽限时间

很简单的,我们要求把宽限时间改为8天。

修改命令:[root@localhost ~]# edquota -t

vim编辑器的操作模式一样进行修改,如下图所示:

『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤的更多相关文章

  1. 『学了就忘』Linux文件系统管理 — 63、磁盘配额介绍

    目录 1.磁盘配额概念 2.磁盘配额条件 3.磁盘配额的相关概念 4.磁盘配额实践规划 1.磁盘配额概念 磁盘配额是限制用户或者用户组在一个分区上可以使用的空间大小和文件个数的限制. 扩展: 管理员可 ...

  2. 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍

    目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...

  3. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  4. 『学了就忘』Linux文件系统管理 — 58、常用硬盘管理相关命令

    目录 1.df命令 2.du命令 3.fsck文件系统修复命令 4.显示磁盘状态dumpe2fs 5.查看文件的详细时间 6.判断文件类型 1.df命令 df命令用于统计分区的占用状况. [root@ ...

  5. 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区

    目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...

  6. 『学了就忘』Linux文件系统管理 — 60、Linux中配置自动挂载

    目录 1.自动挂载 2.如何查询系统下每个分区的UUID 3.配置自动挂载 4./etc/fstab文件修复 上一篇文章我们说明了手动分区讲解,对一块新硬盘进行了手动分区和挂载. 但是我们发现重启系统 ...

  7. 『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区

    目录 1.parted命令介绍 2.parted交互模式 3.建立分区 (1)查看分区 (2)修改成GPT分区表 (3)建立分区 (4)建立文件系统(格式化) (5)调整分区大小 (6)删除分区 1. ...

  8. 『学了就忘』Linux文件系统管理 — 62、手动分配swap分区

    目录 1.查看swap分区情况 2.手动修改swap分区 3.格式化swap分区 4.使用swap分区 5.配置swap分区开机之后自动挂载 1.查看swap分区情况 swap分区就相当于是内存的一个 ...

  9. 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区

    目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...

随机推荐

  1. NB-IoT的DRX、eDRX、PSM三个模式怎么用?通俗解释,看完就懂!

    面我们讲了不少NB-IOT的应用.软件和硬件设计的变动. (链接在文章末尾). 今天讲讲NB-IoT的三大模式,在各种物联网和智能硬件场景中的使用方法 DRX.eDRx.PSM是什么? DRX虽然叫做 ...

  2. 轻松掌握stm32直流电机驱动与测速

    说实话就现在的市场应用中stm32已经占到了绝对住到的地位,51已经成为过去式,32的功能更加强大,虽然相应的难度有所增加,但是依然阻止不了大家学习32的脚步,不说大话了这些大家都懂要不然也不会学习s ...

  3. MVC之三个单选按钮的切换选择

    实现需求: 1.三个多选按钮中:只能同时选择限时抢购和分享金或者拼团特惠和分享金,其中限时抢购和拼团特惠不能同时选择.并且点击后显示,再次点击赢隐藏. 1 @*活动信息*@ 2 <div> ...

  4. Bzoj P2054 疯狂的馒头 | 并查集

    题目链接 思路:因为每次染色都会将某些馒头的颜色彻底更改,所以每个馒头的最终的颜色其实是由最后一次染色决定的,那么我们只考虑最后一次染色即可.对此,我们可以从后往前倒着染色,当目前的染色区间中存在白色 ...

  5. cf 24 Game (观察+.. 想一想)

    题意: 给一个数N,从1到N. 每次取两个数,三种操作:加.减.乘,运算完得一个数,把那俩数删了,把这个数加进去. 重复操作N-1次. 问是否可能得到24.若可以,输出每一步操作. 思路: 小于4,不 ...

  6. Python技法4:闭包

    闭包:用函数代替类 有时我们会定义只有一个方法(除了__init__()之外)的类,而这种类可以通过使用闭包(closure)来替代.闭包是被外层函数包围的内层函数,它能够获取外层函数范围中的变量(即 ...

  7. shell 脚本控制命令的执行顺序

    &&,||,(),{},& 五个符号的运用shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. 也 ...

  8. idea使用git更新代码 : update project(git merge、git rebase)

    idea使用git更新代码 : 选中想要更新的项目,右键点击 git => repository => pull 这样使用一次后idea会自动建立选中分支的远程跟踪分支,以后可直接点击下图 ...

  9. NCF 中如何将Function升级到FunctionRender

    简介 历史的车轮在不断的向前推进,NCF也在不断的迭代更新,只为成为更好的NCF 如果你之前没有用过NCF可以跳过这个文档,直接去下载最新的NCF源码进行实践. NCF仓库地址:https://git ...

  10. docker安装pxc集群

      前言 现在mysql自建集群方案有多种,keepalived.MHA.PXC.MYSQL主备等,但是目前根据自身情况和条件,选择使用pxc的放来进行搭建,最大的好处就是,多主多备,即主从一体,没有 ...