在 Linux 上设置用户和组磁盘配额的 5 个步骤

举报
Tiamo_T 发表于 2022/03/16 11:35:22 2022/03/16
【摘要】 在 Linux 上,您可以使用以下方法之一设置磁盘配额: 文件系统基本磁盘配额分配 基于用户或组的磁盘配额分配

在 Linux 上,您可以使用以下方法之一设置磁盘配额:

  • 文件系统基本磁盘配额分配
  • 基于用户或组的磁盘配额分配


在基于用户或组的配额上,需要考虑以下三个重要因素:

  • Hard limit - 例如,如果您指定 2GB 作为硬限制,用户将无法在 2GB 之后创建新文件
  • Soft limit - 例如,如果您指定 1GB 作为软限制,一旦达到 1GB 限制,用户将收到“磁盘配额超出”警告消息。但是,他们仍然可以创建新文件,直到达到硬限制
  • Grace Period – 例如,如果您指定 10 天作为宽限期,则在用户达到硬限制后,他们将被允许额外 10 天来创建新文件。在那个时间段内,他们应该尝试回到配额限制。

1.在文件系统上启用配额检查

首先,您应该指定允许哪些文件系统进行配额检查。

修改 /etc/fstab,并将关键字 usrquota 和 grpquota 添加到您要监视的相应文件系统中。

以下示例表明在 /home 文件系统上启用了用户和组配额检查

# cat /etc/fstab
LABEL=/home    /home   ext2   defaults,usrquota,grpquota  1 2

完成上述更改后重新启动服务器。

2. 使用 quotacheck 对 Linux 文件系统进行初始配额检查

在文件系统上启用磁盘配额检查后,首先收集所有配额信息,如下所示。

# quotacheck -avug
quotacheck: Scanning /dev/sda3 [/home] done
quotacheck: Checked 5182 directories and 31566 files
quotacheck: Old file not found.
quotacheck: Old file not found.

在上面的命令中:

  • a: 检查所有启用配额的文件系统
  • v:详细模式
  • u:检查用户磁盘配额
  • g:检查组磁盘配额

上述命令将在文件系统目录下为用户和组创建一个配额文件,如下所示。

# ls -l /home/

-rw-------    1 root     root        11264 Jun 21 14:49 aquota.user
-rw-------    1 root     root        11264 Jun 21 14:49 aquota.group

3. 使用 edquota 命令为用户分配磁盘配额

使用如下所示的 edquota 命令来编辑特定用户的配额信息。

例如,要更改用户“ramesh”的磁盘配额,请使用 edquota 命令,该命令将在编辑器中打开软硬限制值,如下所示。

# edquota ramesh

Disk quotas for user ramesh (uid 500):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/sda3           1419352          0          0       1686        0        0

一旦 edquota 命令在编辑器中打开特定用户的配额设置,您可以设置以下限制:

  • 特定用户的磁盘配额大小的软硬限制。
  • 特定用户允许的 inode 总数的软硬限制。

4. 使用 repquota 报告用户和组的磁盘配额使用情况

使用如下所示的 repquota 命令报告用户和组的磁盘配额使用情况。

# repquota /home
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  566488       0       0           5401     0     0
nobody    --    1448       0       0             30     0     0
ramesh    -- 1419352       0       0           1686     0     0
john      --   26604       0       0            172     0     0

5. 将quotacheck添加到每日cron作业

将 quotacheck 添加到每日 cron 作业中。在 /etc/cron.daily 目录下创建一个如下所示的 quotacheck 文件,它将每天运行 quotacheck 命令。这会将 quotacheck 命令的输出发送到根电子邮件地址。

# cat /etc/cron.daily/quotacheck
quotacheck -avug
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。