磁盘配额

1、磁盘配额概念

2、磁盘配额条件

1)内核必须支持磁盘配额

[root@localhost ~]# grep CONFIG_QUOTA /boot/config-2.6.32-279.el6.i686

CONFIG_QUOTA=y

CONFIG_QUOTA_NETLINK_INTERFACE=y

#CONFIG_QUOTA_DEBUG is not set

CONFIG_QUOTA_TREE=y

CONFIG_QUOTACTL=y

2)系统中必须安装了 quota 工具,我们的 Linux 默认是安装了 quota 工具的,查看命令如下

[root@localhost ~]# rpm -qa | grep quota

quota-3.17-16.el6.i686

要支持磁盘配额的分区必须开启磁盘配额功能,这个功能需要手工开启,不再是默认就开启的。

3、概念

1)用户配额和组配额

2)磁盘容量限制和文件个数限制

3)软限制和硬限制

4)宽限时间

如果用户的空间占用数处于软限制和硬限制之间,统会在用户登陆时警告用户磁盘将满,这个时间就是宽限时间,默认是 7 天。如果达到了宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。

4、磁盘配额规划

我们开始磁盘配额实验,首先我们来规划下我们的实验:

1)磁盘配额是限制的普通用户在分区上使用磁盘空间和文件个数的,所以我们需要指定一个分区。那么我们手工建立一个 5GB 的/dev/sdb1 分区,把它挂载到/disk 目录当中。

2)还有我们需要建立被限制的用户和用户组。那么我们假设需要限制 user1、user2 和 user3用户,这三个用户属于 test 用户组。

3)其中 test 组磁盘容量硬限制为 500MB,软限制 450MB,文件个数不做限制。user1 用户为了便于测试,磁盘容量硬限制为 50MB,软限制为 40MB,文件个数硬限制限制为 10 个,软限制为 8 个。user2 和 user3 用户磁盘容量硬限制为 250MB,软限制为200MB,文件个数不做限制。

4)大家发现 user1、user2 和 user3 用户加起来的磁盘容量限制为 550MB,超过了 test 组的磁盘容量限制 500MB。这样的话,某个用户可能达不到自己的用户限制,而达到组限制时就不能再写入数据了。也就是说,如果用户限制和组限制同时存在,那么哪个限制更小,哪个限制优先生效。

5)系统宽限时间我们改为 8 天。

5、磁盘配额步骤

1)分 5GB 的/dev/sdb1 分区,并将它挂载到/disk 目录当中

2)建立需要做限制的用户和用户组

[root@localhost ~]# groupadd test

[root@localhost ~]# useradd -G test user1

[root@localhost ~]# useradd -G test user2

[root@localhost ~]# useradd -G test user3

[root@localhost ~]# passwd user1

[root@localhost ~]# passwd user2

[root@localhost ~]# passwd user3

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

[root@localhost ~]# mount -o remount,usrquota,grpquota /disk

#重新挂载/disk 分区,并加入用户和用户组的磁盘配额功能

我们要想永久生效,则需要修改/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

需要关闭 SELinux,否则会报错

[root@localhost ~]# ll /disk/

总用量 24

-rw------- 1 root root 6144 4 月 17 01:08 aquota.group

-rw------- 1 root root 6144 4 月 17 01:08 aquota.user

#/disk 目录中两个配额配置文件已经建立

如果需要给根分区开启配额功能,需要:

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

UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults,usrquota,grpquota 1 1

#开启/分区的配额功能

[root@localhost ~]# mount -o remount /

#重新挂载/分区

[root@localhost ~]# quotacheck -avugm

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

5)设置用户和组的配额限制

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

选项:

-u 用户名: 设定用户配额

-g 组名: 设定组配额

-t: 设定宽限时间

-p: 复制配额限制。如果已经设定好某个用户的配额限制,其他用户的配额限

制如果和这个用户相同,那么可以直接复制配额限制,而不用都手工指定

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

[root@localhost ~]# edquota -u user1

#edquota 命令进入之后,就是标准的 vi 操作方法

Disk quotas for user user1 (uid 500):

#磁盘配额是设定用户 user1(UID 是 500)

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 0 0 0 0 0

#分区名 已占用容量 软限制 硬限制 已占用文件数 软限制 硬限制

Disk quotas for user user1 (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 40000 50000 0 8 10

#不用对齐,是七列就行

再给 user2 用户配置限额,user2 用户要求是空间软限制 250MB,硬限制 250MB,文件个数不做限制:

[root@localhost ~]# edquota -u user2

Disk quotas for user user2 (uid 501):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 250000 300000 0 0 0

接下来给 test 组配置限额,test 组要求是空间软限制是 450MB,硬限制 500MB,文件个数不做限制:

[root@localhost ~]# edquota -g test

Disk quotas for group test (gid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sdb1 0 450000 500000 0 0 0

6)配额复制

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

[root@localhost ~]# edquota -p user2 -u user3

#命令 -p 源用户 -u 目标用户

7)修改宽限时间

我们要求把宽限时间改为 8 天,修改命令如下:

[root@localhost ~]# 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/sdb1 8days 8days

#分区名 容量的宽限时间 个数的宽限时间

8)启动和关闭配额

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

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

选项:

-a:依据/etc/mtab 文件启动所有的配额分区。如果不加-a,后面就一定要指定分区名

-u:启动用户配额

-g:启动组配额

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

[root@localhost ~]# quotaon -vug /disk/

/dev/sdb1 [/disk]: group quotas turned on

/dev/sdb1 [/disk]: user quotas turned on

#启动/disk 分区的配额

[root@localhost ~]# quotaon –avug

#这条命令也可以

关闭配额的命令如下:

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

选项

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

-u:关闭用户配额

-g:关闭组配额

[root@localhost ~]# quotaoff –a

#依据/etc/mtab 文件关闭配额分区

6、磁盘配额查询

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 –augvs

7、测试

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

#建立 testfile 文件,指定大小 60MB

8、非交互设定用户磁盘配额

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

[root@localhost ~]# useradd user4

[root@localhost ~]# passwd user4

#建立用户

[root@localhost ~]# setquota -u user4 10000 20000 5 8 /disk

#设定用户在/disk 分区的容量软限制为10MB,硬限制20MB。文件个数软限制5个,硬限制#8个

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

来源:https://www.icode9.com/content-3-380001.html

linux磁盘配额分区,Linux磁盘配额相关推荐

  1. 安装linux 分区设置,linux如何设置分区,linux新磁盘分区,安装linux如何分区

    琪琪词资源网 - linux如何设置分区,linux新磁盘分区,安装linux如何分区 Linux自动挂载硬盘的步骤: 1.插入新硬盘,启动Linux服务器,使用fdisk -l查看硬盘: #fdis ...

  2. 使用 parted 对单个磁盘进行分区并进行配额

    文章目录 1. 实验要求 2. 实验步骤 3. 我的一次实验步骤 1. 实验要求 虚拟机新增一个硬盘,大小大于 10G ,使用 parted 工具对磁盘进行分区,分区类型为 ext4 对新增分区设置磁 ...

  3. Linux 磁盘管理-分区管理-磁盘分区【gdisk】gpt分区工具使用介绍

    gdisk -l [设备] gdisk又叫GPT fdisk,算是fdisk的延伸吧,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘. 扩展1:分区类型GPT和MBR.GPT最大支持18EB( ...

  4. linux 扩展zhu分区,Linux分区调整(LVM和非LVM环境中扩容和缩小)

    前言:我的上一篇博文详细介绍了磁盘.格式以及分区知识,里面也涉及了LVM,本文主要实践下LVM和非LVM环境中Linux分区如何扩容和缩小. 分区调整原理: Linux磁盘分区和磁盘格式紧密相连,想要 ...

  5. 对linux lvm怎么分区,linux下的LVM分区管理

    假设现在给服务器挂接了一块339.14GB的磁盘并希望使用LVM对这个磁盘进行分区管理本文中我们创建两个分区,名字分别叫做data和data1大小分别为300GB和39GB然后使用LVM调整其大小首先 ...

  6. 查看linux是否lvm分区,linux LVM分区查看dm设备

    linux LVM分区查看dm设备 在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device:            tps    kB_read/s   ...

  7. linux创建raid5分区,linux RAID5 创建过程以及raid5扩容步骤(软raid)

    1.查看新挂载磁盘是否以被设备识别出来(如下) [root@localhost ~]# fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 h ...

  8. linux内核mtd分区,linux内核MTD分区

    linux内核MTD分区 (30页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 MTD 设备驱动 和 NAND Flash 驱动程序分析 ...

  9. linux硬盘和分区,Linux硬盘和分区

    (1).硬盘和分区知识 磁盘有IDE接口和SCSI接口两种. 磁盘在使用前需分区.磁盘分区有主分区.扩展分区和逻辑分区之分.(一块硬盘可以有4个主分区,其中一个主分区的位置可以有一个扩展分区替换,即可 ...

  10. linux parted 批量分区,Linux的parted分区命令用法是什么

    Linux的parted分区命令用法:1.交互式,手动按序交互式的创建:2.非交互式,可将命令行写在脚本中,运行脚本实现一键创建:适用于远程批量管理多台主机的场景. 本文环境:windows7系统.L ...

最新文章

  1. 医院选址问题--数据结构课程设计
  2. 落地即一地鸡毛,AI落地存在的难题有哪些?
  3. caffe中的学习率的衰减机制
  4. 套接字I/O模型之WSAEventSelect
  5. 从零开始玩转logback
  6. 数据库单表千万行 LIKE 搜索优化手记
  7. mysql 数据修改记录日志_mysql对数据的更新操作记录在哪个日志中?
  8. 【珍藏版】长文详解python正则表达式
  9. EasyRecovery14免费版文件数据恢复还原软件
  10. freeswitch php esl,FreeSWITCH增加PHP ESL模块支持
  11. 背包问题(Knapsack Problem) ----- 蛮力法
  12. powerVR tbdr 硬件架构理解
  13. linux定时脚本编写,如何实现Linux定时任务
  14. 你真的会用苹果备忘录吗?iPhone用户必须学会的10个备忘录使用技巧
  15. Excel批量合并相同内容单元格操作——WPS太秀了
  16. 易基因|3文一览:DNA甲基化及组学测序在斑马鱼中的科学研究成果
  17. 通过虚拟机模拟linux操作系统
  18. 计算机英语统考试卷分析,英语期末考试试卷分析与反思
  19. jQuery实现对file对象的压缩
  20. 基于matlab的低通滤波器,基于Matlab Guide的低通滤波器设计

热门文章

  1. Golang——从入门到放弃
  2. c语言标准体重测试指数分男女,测测你的体脂率附男女标准体脂率对照表
  3. 制作马卡龙渐变海报教程
  4. 猪齿鱼 SaaS 版效能平台发布
  5. F5在铁路12306中的应用
  6. AOP的连接点与切点区别,连接点,切点,切面的基础概念
  7. CF633H Fibonacci-ish II 莫队、线段树、矩阵乘法
  8. 【Web】CSS(No.21)Css经典案例(三)《爱宠知识》
  9. 【论文翻译 AAAI 2020 | 知识图谱综述】A Survey on Knowledge Graphs: Representation, Acquisition and Applications
  10. 估计四川长虹的beta系数