Linux quota磁盘配额限额操作

Q1、什么是quota?有什么作用?

简单来说就是:
磁盘配额是用来限制用户和用户组的磁盘使用额度,可以理解为限制该用户、用户组在该分区下使用的文件大小、文件数量。而这个操作就需要quota来实现。

Q2、限制的类型

  • 限制 inode 用量:可以管理使用者可以创建的“文件数量”;
  • 限制 block 用量:管理使用者磁盘容量的限制,较常见为这种方式。

柔性劝导与硬性规定 (soft/hard):
不管是 inode/block ,限制值都有两个,分别是 soft 与hard。 通常 hard 限制值要比 soft 还要高。举例来说,若限制项目为 block ,可以限制 hard为 500MBytes 而 soft 为 400MBytes。这两个限值的意义为:

  • hard:表示使用者的用量绝对不会超过这个限制值,以上面的设置为例, 使用者所能使用的磁盘容量绝对不会超过 500MBytes ,若超过这个值则系统会锁住该用户的磁盘使用权;
  • soft:表示使用者在低于 soft 限值时 (此例中为 400MBytes),可以正常使用磁盘,但若超过 soft 且低于 hard 的限值 (介于 400~500MBytes 之间时),每次使用者登陆系统时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间 (grace time)。不过,若使用者在宽限时间倒数期间就将容量再次降低于 soft 限值之下, 则宽限时间会停止。
  • 会倒数计时的宽限时间 (grace time):
    刚刚上面就谈到宽限时间了!这个宽限时间只有在使用者的磁盘用量介于 soft 到 hard 之间时,才会出现且会倒数的一个咚咚! 由于达到 hard 限值时,使用者的磁盘使用权可能会被锁住。为了担心使用者没有注意到这个磁盘配额的问题, 因此设计了 soft 。当你的磁盘用量即将到达 hard 且超过 soft 时,系统会给予警告,但也会给一段时间让使用者自行管理磁盘。

以上面设置的例子来说,假设你的容量高达 450MBytes 了,那七天的宽限时间就会开始倒数, 若七天内你都不进行任何删除文件的动作来替你的磁盘用量瘦身, 那么七天后你的磁盘最大用量将变成 400MBytes (那个 soft 的限制值),此时你的磁盘使用权就会被锁住而无法新增文件了。

注意:ETX文件系统只有ETX4支持配额限额操作

一、ext4的磁盘配额设置

测试运行环境CentOS 7.9虚拟机

配置步骤:
1、 关闭selinux

systemctl stop sellinux
systemctl disable sellinux
sestatus -v    //查看selinux状态在这里插入代码片

注意:设置完成后需要重启生效
2、 创建一个磁盘分区

以/dev/sdc为例,创建/dev/sdc1分区(如果将现有的磁盘分区进行配额限额操作,跳过此步骤,直接执行4)
[root@localhost ~]# fdisk /dev/sdc

3、 格式化磁盘分区
(如果将现有的磁盘分区进行配额限额操作,跳过此步骤,直接执行4)

[root@localhost ~]# mkfs.ext4 /dev/sdc1

4、 修改/etc/fstab文件,对所选文件系统进行激活配额选项

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

进入编辑器后在末尾添加如下所示代码○1,或者在已有的文件系统(如/home)defaults,后面添加usrquota,grpquota.○2

5、 刷新挂载信息

[root@localhost ~]# mount -av

6、 查看挂载信息

[root@localhost ~]# mount | grep “目录“

7、 开启quota功能
由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令
-v:显示扫描过程
-u:针对扫描用户的情况建立aquota.user
-g:针对扫描组的情况建立aquota.group

[root@localhost ~]# quotacheck -ug ##u表示创建用户配额 ,g表示创建用户组额

8、 创建新用户

9、 给用户配置磁盘配额限额

[root@localhost ~]# edquota -u user03

10、让用户配额和主配额生效 quotaon 选项分区名

[root@localhost ~]# quotaon  -ug  /home/utest

11、进入测试

[root@localhost ~]# su – user03
[user03@localhost ~] $ dd if=/dev/zero of=123.img bs=1M count=200
•	dd:复制
•	if=/dev/zero:从zero中拿取容量,即将指定文件中写入“0”
•	of=文件路径:将的容量写入设置配额磁盘下的文件中
•	bs=N:每次写多少容量,默认单位为字节,可带单位K,M
•	count=N:一共写入几次

12、再次回到root用户模式,edquota -u user 查看目前用量

[root@localhost ~]# edquota -u user

----配置结束

二、xfs的磁盘配额设置

测试运行环境Suse 15 SP3虚拟机
本次以/home目录这个xfs文件系统为例进行操作

1、 创建用户

useradd -d /home/user03 -m user03

2、 确定目标目录(本次/home)文件系统格式
(这里对已有的文件系统进行操作,不需要在创建磁盘分区和格式化了,如有需要请参考ETX4磁盘配额限额章节相关操作)

3、 进入挂载目录。设置自动挂载

vim /etc/fstab

4、 刷新挂载
可以看到/home目录已经支持quota功能

5、 列出目前系统的各的文件系统,以及文件系统的 quota 挂载参数支持

xfs_quota -x -c "指令" [挂载点]

选项与参数:
-x :专家模式,后续才能够加入 -c 的指令参数喔!
-c :后面加的就是指令,这个小节我们先来谈谈数据回报的指令
指令:
print :单纯的列出目前主机内的文件系统参数等数据
df :与原本的 df 一样的功能,可以加上 -b (block) -i (inode) -h (加上单位) 等
report:列出目前的 quota 项目,有 -ugr (user/group/project) 及 -bi 等数据
state :说明目前支持 quota 的文件系统的信息,有没有起动相关项目等

说明:
User quota state on /home (/dev/mapper/centos-home)
Accounting: ON # 有启用计算功能
Enforcement: ON # 有实际 quota 管制的功能
Inode: #1568 (4 blocks, 4 extents) # 上面四行说明的是有启动 user 的限制能力
Group quota state on /home (/dev/mapper/centos-home)
Accounting: ON
Enforcement: ON
Inode: #1569 (5 blocks, 5 extents) # 上面四行说明的是有启动 group 的限制能力
Project quota state on /home (/dev/mapper/centos-home)
Accounting: OFF
Enforcement: OFF
Inode: #1569 (5 blocks, 5 extents) # 上面四行说明的是 project 并未支持
Blocks grace time: [7 days 00:00:30] # 下面则是 grace time 的项目
Inodes grace time: [7 days 00:00:30]
Realtime Blocks grace time: [7 days 00:00:30]
6、 设置配额限额
xfs_quota -x -c “limit [-ug] b[soft|hard]=N i[soft|hard]=N name”
xfs_quota -x -c “timer [-ug] [-bir] Ndays”
选项与参数:
limit :实际限制的项目,可以针对 user/group 来限制,限制的项目有
bsoft/bhard : block 的 soft/hard 限制值,可以加单位
isoft/ihard : inode 的 soft/hard 限制值
name : 就是用户/群组的名称啊!
timer :用来设置 grace time 的项目喔,也是可以针对 user/group 以及 block/inode 设置

7、 设置grace time
xfs_quota -x -c “timer -ug -b 14days” /home
xfs_quota -x -c “state” /home

8、 进入测试
su – user04
dd if=/dev/zero of=123.img bs=1M count=200

超出最大限额报错
9、 返回root查看容量使用情况
xfs_quota -x -c “report -ubh” /home

----配置结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Vue3与ElementUI Plus的酷企秀场景可视化DIY设计器探索(更新版)

一、引言 在当今数字化快速发展的时代,企业对于展示自身形象、产品细节以及提升客户体验的需求日益增强。酷企秀场景可视化DIY设计器,以其强大的功能和灵活的定制性,为企业提供了从VR全景展示到地图可视化、电子画册制作等一系列数字化解决方…

工业机器人应用实践之玻璃涂胶(篇一)

工业机器人 工业机器人,即面向工业领域的机器人。工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业机器人被广泛应用于电子、物流、化工等…

LeetCode 106.从中序与后序遍历序列构造二叉树

LeetCode 106.从中序与后序遍历序列构造二叉树 1、题目 题目链接:106. 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并…

股票问题(至多两次购买

class Solution {public int maxProfit(int[] prices) {int[] dpnew int[4];dp[0]-prices[0];//第一次持有dp[1]0;dp[2]-prices[0];//第二次持有dp[3]0;for(int i1;i<prices.length;i){dp[0]Math.max(dp[0],-prices[i]);dp[1]Math.max(dp[1],dp[0]prices[i]);dp[2]Math.max(…

在 Python 的哪个版本之后,字典的添加顺序与键的顺序是一致的?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 在 Python 的不同版本中&#xff0c;字典&#xff08;dict&#xff09;类型的行为发生了显著变化。在 Python 3.6 及之前的版本中&#xff0c;字典是无序的&#xff0c;这意味着字典在遍历时不能保证按…

vite依赖预构建与配置文件

vite的预加载 import _ from lodashvite 在处理过程中会把非绝对路径或者相对路径的引用&#xff0c;会尝试进行路径补全操作。 import _ from lodash// vite 会处理成import _ from /node_modlues/.vite/lodash依赖预构建 首先vite会找到对应的依赖&#xff0c;然后调用esb…

call、apply、bind 作用和区别

目录 一、用法 1.1、call用法 1.2、apply用法 1.3、bind用法 二、区别 2.1、相同点 2.2、不同点 三、使用场景 3.1 apply()的使用合并两个数组 3.1.1 原理 3.1.2 如何解决参数过多的问题呢&#xff1f;—— 将参数数组切块&#xff0c;循环传入目标方法 3.2 app…

【C++风云录】探索食品工艺的新工具:创新你的食谱

食品加工模拟&#xff1a;优化你的营养研究 前言 在科技的推动下&#xff0c;食品科学领域已经逐步引入了智能化工具&#xff0c;以协助研究人员和工业界进行更精细、更深入的研究。本文将详细介绍六款与食品科学紧密相关的软件和库&#xff0c;它们包括FoodCAD, Nutritional…

数据结构十三:八大排序算法

排序算法&#xff08;sorting algorithm&#xff09;是用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定&am…

树(Tree)和二叉树

1.树的定义 树是一种非线性的数据结构&#xff0c;它表现的关系是一对多 它是由n&#xff08;n>0&#xff09;个结点组成的有限集&#xff0c;当n 0时&#xff0c;称为空树。 在任意一棵非空树中应满足&#xff1a; 1.有且仅有一个特殊的根节点&#xff0c;根节点没有前…

【江科大STM32学习笔记】GPIO输出

一、GPIO简介 1.GPIO&#xff08;General Purpose Input/Output&#xff09;通用输入输出 2.可配置为8种输入输出模式 3.引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V 部分引脚输入可为5V但输出只能是3.3V 4.输出模式下可控制端口输出高低电平&#xff0c;用…

Python基础详解四

一&#xff0c;Json解析 字典转换为JSON&#xff1a; import jsondata [{"name":"袁震","age":20},{"name":"张三","age":21},{"name":"李四","age":22}] str json.dumps(data) …

Linux(centos7)系统配置 ntpd服务设置时间同步

一 、应用场景 两台服务器,要求使他们时间同步,有人问为什么要时间同步?如果一个集群中,时间相差很大,那么会出现很多诡异的问题,你也不想在一个无法解决的问题上浪费几天时间吧!总之,设置服务器之间时间同步,为了避免很多问题的发生! ntpd(Network Time Protocol …

【第20章】spring-mvc之定时任务

文章目录 前言一、开启1. 打开开关2. 定时任务类3. 执行结果 二、定时任务线程池1.定义线程池2.开启异步3. 定时任务类4. 执行结果 三、cron总结 前言 定时任务是项目中比较常见的功能&#xff0c;常用于定时发送消息、拉取数据、数据备份等&#xff1b; 为什么要放到SpringM…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;四&#xff09; 大家继续看 https://lilianweng.github.io/posts/2023-06-23-agent/的文档内容 第三部分&#xff1a;工具使用 工具的使用是人类的一个显着而显着的特征。我们创造、修改和利用外部物体来完成超…

开发一款抓大鹅游戏

你抓大鹅第二关过了吗&#xff1f;近期,经常在身边听见这样的疑问。作为本月的爆款游戏&#xff0c;抓大鹅以简单的消消乐玩法、动感的音乐、易上手的操作方式、简单易懂的游戏规则吸引了大量玩家。就像2022年的羊了个羊&#xff0c;2021年的合成大西瓜&#xff0c;但它们确实非…

20240511,谓词,内建函数对象

拜托铠甲勇士真的帅好不好&#xff01;&#xff01;&#xff01; STL案例2-员工分组 10个员工&#xff0c;指派部门&#xff0c;员工信息&#xff08;姓名&#xff0c;工资组成&#xff0c;部门&#xff1a;策划&#xff0c;美术&#xff0c;研发&#xff09;&#xff0c;随机…

【gpedit.msc】组策略编辑器的安装,针对windows家庭版,没有此功能

创建一个记事本文件然后放入以下内容 echo offpushd "%~dp0"dir /b %systemroot%\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >gp.txtdir /b %systemroot%\servicing\Packages\Microsoft-Windows-GroupPolicy-…

[框架] Unity 公共执行器

本篇我们通过使用单例模式来创建一个公共执行器&#xff0c;使得原本应该在Update()、FixedUpdate()中的指令都可以统一放在一个对象中执行&#xff0c;且可进行添加和移除操作。 1. 创建单例模式改造器&#xff1a;SingletonMono 我们先创建一个单例模式改造器&#xff0c;使…

2024数维杯

截至我所知的信息&#xff08;2023年&#xff09;&#xff0c;“数维杯”并不是一个广泛认知的赛事名称&#xff0c;至少在主流的学术、教育或科技竞赛领域中没有明确对应的赛事。这可能是指某个特定领域或地区的竞赛&#xff0c;也可能是一个新兴的比赛或者非正式的称谓。 如…