首页 程序笔记 如何在 XFS 或 Ext4 Linux 系统上启用磁盘配额

如何在 XFS 或 Ext4 Linux 系统上启用磁盘配额

本教程将通过实际例子讲解在Linux系统上配置磁盘配额的过程。磁盘配额系统基于伯克利磁盘配额系统,它为系统管理员提供了一种控制磁盘空间使用的方法。它可以为单个 Linux 用户或组定义。

在磁盘上建立的限制基于您可以使用 JFS 文件系统的 edquota 命令和 JFS2 文件系统的 j2edlimit 命令更改的参数:

  • 用户或组的软限制
  • 用户或组的硬限制
  • 配额宽限期

磁盘配额系统在位于启用配额的文件系统的根目录中的 quota.userquota.group 文件中跟踪用户和组配额。这些文件是使用quotacheck和edquota命令创建的,并且可以使用quota命令读取。

让我们首先确定 Linux 系统的文件系统以及配额是否已启用。

$ mount | grep ' / '
# Ext4
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)

# XFS
/dev/mapper/cs-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

从输出中可以明显看出,ext4 和 xfs 文件系统上均未启用磁盘配额。

在 XFS 文件系统上启用磁盘配额

来自安装 | grep '/' 输出检查配额是否被禁用,如果是这样,输出中将有 noquota

$ mount | grep ' / '
/dev/mapper/cs-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

如果启用磁盘配额,您将在输出中看到“usrquota”和“groupquota”。

使用以下命令编辑 Grub 配置文件。

sudo vim /etc/default/grub

在末尾添加 rootflags=usrquota,grpquota

GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rootflags=usrquota,grpquota"

备份当前的 Grub2 配置文件。

sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

对于 EFI 引导的系统,该文件位于“/boot/efi/EFI/centos/grub.cfg

sudo cp /boot/efi/EFI/centos/grub.cfg /boot/efi/EFI/centos/grub.cfg.orig

生成新的 Grub 配置文件。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

对于电喷

sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

重启服务器然后检查

mount | grep ' / '

设置用户配额。

sudo xfs_quota -x -c 'limit bsoft=4g bhard=5g myuser'  /home
sudo xfs_quota -x -c 'limit -g bsoft=4g bhard=5g myuser' /home

显示报告。

sudo report -h -u 

在 EXT4 文件系统上启用磁盘配额

检查您的系统中是否已启用磁盘配额。

/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)

如果系统中已启用配额,则输出将包含“usrquota”和“groupquota”。

$ mount | grep ' / '
/dev/xvda1 on / type ext4 (rw,usrquota,grpquota)

编辑 /etc/fstab 文件并

UUID=<UUID> /                       ext4    defaults,usrquota,grpquota 0 0

我的服务器示例:

UUID=b60999df-940a-4c3a-9128-8312e991abeb /               ext4    defaults,usrquota,grpquota,errors=remount-ro  0  1

您可以重新挂载文件系统以使更改生效。

sudo mount -o remount /

安装提供quotacheck命令的quota包。

sudo apt update && sudo apt install quota -y

接下来使用quotacheck命令创建配额数据库。这会在/下创建 aquota.useraquota.group

sudo quotacheck -cugmv /

在哪里 :

  • -c 指定我们正在创建文件配额
  • -u 指定创建基于用户的配额文件
  • -g 指定创建组磁盘配额
  • -m 在执行配额的初始计数时禁止将文件系统重新挂载为只读
  • -v 详细输出

通过运行以下命令打开磁盘配额。

sudo quotaon /

使用edquota命令编辑用户的磁盘配额。

sudo edquota -u myuser

对于组的配额,请使用该选项。

sudo edquota -g mygroup

对于单个命令,请使用 setquota

sudo setquota -u myuser 800M 2G 0 0 /
sudo quota -vs myuser

可以使用打印配额报告。

sudo repquota -s /

结论

在本教程中,我们已经能够在 ext4 和 xfs 文件系统上配置磁盘配额。我们还安装了配额命令行工具,为用户和组启用磁盘配额,并验证我们的 Linux 内核是否可以监视和报告磁盘配额。我们希望该指南对您有所帮助。


3

声明 本站内容部分来源于网络,仅供参考学习交流并不代表本站观念,如无意中侵犯您的权益( 包括/图片/视频/个人隐私等信息 )请来信告知,本站收到信息会尽快处理并回访,联系邮箱:laodilailiao@foxmail.com

站心网

本教程将通过实际例子讲解在Linux系统上配置磁盘配额的过程。磁盘配额系统基于伯克利磁盘配额系统,它为系..

为您推荐

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

详解:订单履约系统规划

大家好,我是汤师爷~什么是订单履约系统?订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

如何让AI写出Google认可的文章?

让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..

如何从.NET Framework迁移到.NET Core或.NET 6/7?

从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..

如何优化ASP.NET Core应用的性能?

优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

LinkWeChat开源系统

平台介绍LinkWeChat是一款基于企业微信的开源SCRM系统,为企业构建私域流量系统的综合解决方案,显著提升企业社交运营效率!内置功能环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >=..

每一个程序员,都希望能成为分布式系统架构师

有很多读者经常问我,程序员的学习、成长之路应该怎么规划,才能早日成为一名架构师。作为一个曾经的架构师,在我走上技术管理这条路之后,管理的团队越来越大,现在我管理的技术团队有一百多人,最大的体会就是操心..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?

鸿蒙(HarmonyOS)和 OpenHarmony 系统本身并不原生支持直接运行 .NET Core,但可以通过一些方法使 .NET Core 应用在其上运行。鸿蒙和 OpenHarmony 是基于 LiteOS 和 Linux 内核的多终端操作系统,因此它们的运行时..

如何防止web应用DOS攻击?

防止web应用DOS攻击的最好的方法是什么? 如何防止web应用DOS攻击? 与所有的拒绝服务(DOS)攻击相关的一件事是他们都不可能避免。最好的方法是把重点放在减少影响DOS攻击的方法上。如果你有一个网络,黑客想要玩一玩..

数据库SQL Server2014和SQL Server2019的区别和如何选择?

SQL Server 2014和SQL Server 2019是微软公司发布的两个版本的数据库管理系统,它们在性能、安全性以及可扩展性等方面各有特点。在选择这两个数据库版本时,需要根据系统需求、预算状况以及技术团队的熟悉程度等因素..

宝塔里mysql停止了自动启用脚本

mysql突然停止的原因有多种,这里不列举,可以排查具体原因。如果停止后,还可以手工正常启用mysql,那可以考虑把shell脚本添加到宝塔的计划任务里,定时每隔几分钟检测一次,让mysql自动检测停止后立马启用。ps=`ps..

宝塔里redis停止了自动启用脚本

redis突然停止的原因有多种:1、内存不足,如果Redis使用的内存超过了服务器可用内存,操作系统会自动杀死Redis进程。2、服务器的资源限制(ulimit)比较低,Redis可能会因为无法打开足够的文件描述符而停止。3、其..

Winform不同分辨率系统下界面混乱

产生界面混乱的主要原因是,winform程序的坐标是基于点(Point)的,而Point又与DPI相关。一英寸 = 96pixels96DPI是windows的默认DPI,当它被用户更改后,可能就会导致界面与设计之初产生了错乱。在网上搜索相关资料后..

MySQL如何建数据库

MySQL是一款非常流行的关系型数据库管理系统。无论是在企业还是个人项目中,都经常使用MySQL数据库。在使用MySQL之前,需要先创建一个数据库。本文将介绍如何建立MySQL数据库。一、安装MySQL在开始建立MySQL数据库之..

jwt是什么?.NET Core API如何使用JwtBearer验证

JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

什么是微服务架构?它与单体应用程序架构有什么区别?如何在.NET中实现微服务架构?

微服务架构是一种软件架构风格,通过将应用程序拆分为一组小型、自治的服务来构建应用程序。每个服务都专注于解决特定的业务功能,并通过轻量级的通信机制进行交互。这些服务可以独立开发、部署和扩展,可以使用不同..

发表回复

返回顶部