Linux quotaon 命令及实际示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Linux 的 quotaon 命令及其在管理磁盘配额中的实际应用。实验内容涵盖磁盘配额管理的介绍、在文件系统上启用磁盘配额,以及监控和管理用户磁盘配额。我们将学习如何设置和配置磁盘配额管理,以及如何在 Linux 系统上监控和管理用户的磁盘使用情况。实验提供了逐步的指导和实际示例,帮助你有效理解和应用磁盘配额管理。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/SystemInformationandMonitoringGroup -.-> linux/df("Disk Space Reporting") linux/SystemInformationandMonitoringGroup -.-> linux/du("File Space Estimating") linux/SystemInformationandMonitoringGroup -.-> linux/mount("File System Mounting") subgraph Lab Skills linux/mkdir -.-> lab-422876{{"Linux quotaon 命令及实际示例"}} linux/df -.-> lab-422876{{"Linux quotaon 命令及实际示例"}} linux/du -.-> lab-422876{{"Linux quotaon 命令及实际示例"}} linux/mount -.-> lab-422876{{"Linux quotaon 命令及实际示例"}} end

磁盘配额管理介绍

在这一步骤中,我们将探讨 Linux 中的磁盘配额管理概念。磁盘配额是一种系统,允许系统管理员限制用户或组在文件系统上可以消耗的磁盘空间量。

首先,让我们检查文件系统上的当前磁盘使用情况:

df -h

示例输出:

Filesystem      Size  Used Avail Use% Mounted on
overlay         39G   16G   22G  42% /
tmpfs           64M     0   64M   0% /dev
tmpfs           16G     0   16G   0% /sys/fs/cgroup
shm             64M     0   64M   0% /dev/shm
/dev/sda1       39G   16G   22G  42% /
tmpfs           16G     0   16G   0% /run
tmpfs           16G     0   16G   0% /var/run
tmpfs           16G     0   16G   0% /var/lib/docker
overlay         39G   16G   22G  42% /var/lib/docker/overlay2
tmpfs           16G     0   16G   0% /sys/fs/cgroup

输出显示了文件系统上的当前磁盘使用情况。在此示例中,根文件系统(/)使用了 42% 的可用磁盘空间。

接下来,让我们在根文件系统上启用磁盘配额管理:

sudo apt-get update
sudo apt-get install -y quota
sudo quotacheck -cug /
sudo quotaon -a

quotacheck 命令扫描文件系统,构建当前磁盘使用情况的表,并将其存储在文件系统的内核内存中。quotaon 命令在指定的文件系统上启用磁盘配额管理。

现在,让我们验证磁盘配额管理是否已启用:

sudo quotaon -a

示例输出:

/: quotas turned on

输出确认磁盘配额管理已在根文件系统(/)上启用。

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

在这一步骤中,我们将学习如何在特定的文件系统上启用磁盘配额。

首先,让我们创建一个新目录并将其挂载为一个独立的文件系统:

sudo mkdir /data
sudo mount -t tmpfs tmpfs /data

现在,让我们在 /data 文件系统上启用磁盘配额管理:

sudo quotacheck -cug /data
sudo quotaon /data

quotacheck 命令扫描 /data 文件系统,构建当前磁盘使用情况的表,并将其存储在文件系统的内核内存中。quotaon 命令在 /data 文件系统上启用磁盘配额管理。

让我们验证 /data 文件系统上的磁盘配额管理是否已启用:

sudo quotaon -a

示例输出:

/: quotas turned on
/data: quotas turned on

输出确认磁盘配额管理已在根文件系统(/)和 /data 文件系统上启用。

接下来,让我们为用户设置磁盘配额限制。在此示例中,我们将使用 labex 用户:

sudo edquota labex

这将打开配额编辑器,你可以在其中为用户设置磁盘使用的软限制和硬限制。例如:

Disk quotas for user labex (uid 1000):
  Filesystem  blocks  soft  hard  inodes  soft  hard
  /data         0       5000  6000    0      0     0

在此示例中,/data 文件系统的软限制设置为 5000 块,硬限制设置为 6000 块。

监控和管理用户磁盘配额

在这最后一步中,我们将学习如何监控和管理用户的磁盘配额。

首先,让我们检查 labex 用户的当前磁盘配额使用情况:

sudo repquota /data

示例输出:

*** Report for user quotas on device /data
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
---------------------------------------------------------------------
labex        --      0     5000    6000            0      0      0

repquota 命令显示指定文件系统的当前磁盘配额使用情况。在此示例中,labex 用户在 /data 文件系统上使用了 0 块,软限制为 5000 块,硬限制为 6000 块。

现在,让我们模拟一个场景,其中 labex 用户超出了他们的磁盘配额:

dd if=/dev/zero of=/data/bigfile.txt bs=1M count=6000

此命令在 /data 目录中创建一个 6000 MB 的文件,这将超出 labex 用户的磁盘配额。

让我们再次检查磁盘配额使用情况:

sudo repquota /data

示例输出:

*** Report for user quotas on device /data
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
---------------------------------------------------------------------
labex        *  6000    5000    6000  1day        0      0      0

输出显示 labex 用户已超出其 5000 块的软限制,现在处于 1 天的宽限期内,需要减少其磁盘使用量。

要管理用户的磁盘配额,你可以使用以下命令:

sudo edquota labex  ## 编辑用户的磁盘配额限制
sudo quota -v labex ## 显示用户的当前磁盘配额使用情况
sudo quota -l labex ## 显示用户的磁盘配额限制

edquota 命令允许你修改用户的磁盘配额限制,而 quota 命令允许你查看用户的当前磁盘配额使用情况和限制。

总结

在本实验中,我们首先探讨了 Linux 中磁盘配额管理的概念,它允许系统管理员限制用户或组在文件系统上可以消耗的磁盘空间量。接着,我们学习了如何在根文件系统上启用磁盘配额管理,包括安装必要的软件包、运行 quotacheck 命令以构建当前磁盘使用情况的表,以及使用 quotaon 命令启用磁盘配额管理。最后,我们学习了如何在一个独立的文件系统上启用磁盘配额管理,包括创建新目录、将其挂载为独立的文件系统,并在该文件系统上启用磁盘配额管理。

Linux 命令速查表