我们需要为所有用户设置一个默认配额。据我从 看到man 8 xfs_quota
,您只能为单个用户设置配额。我需要设置一个适用于所有人的配额,而不必逐一列举每个用户。
答案1
如果您确实阅读了手册页,我不确定您怎么会错过这一点。
limit [ -gpu ] bsoft=N | bhard=N | isoft=N | ihard=N | rtbsoft=N | rtb‐
hard=N -d | id | name
Set quota block limits (bhard/bsoft), inode count limits
(ihard/isoft) and/or realtime block limits (rtbhard/rtbsoft).
The -d option (defaults) can be used to set the default value
that will be used, otherwise a specific user/group/project name
or numeric identifier must be specified.
因此,您需要设置一个默认配额,如下所示:
# xfs_quota -x -c 'limit bsoft=1g bhard=1g -d' /home
答案2
我在这里补充一些内容,希望能帮助其他遇到同样问题的人。
我有一个使用 uquota 安装的 XFS 文件系统。有多个用户使用该文件系统,我想限制他们的使用量,还有一个超级用户(我们称她为“lisa”),我不想限制她的使用量。我这里还有一个 postgres 数据库(由用户“postgres”拥有),我不想限制它的使用量。
我发现 xfs_quota 手册页在默认限制如何实际工作方面缺少描述,并且在其他任何地方都找不到任何资源,所以这就是我发现的。
设置默认限制...
xfs_quota -x -c 'limits bsoft=45G bhard=50g -d' /myxfs
太棒了。所有配额都已设置,任何新登录的用户都将自动获得默认限制。现在我将通过将其限制明确设置为 0 来将我的超级用户和 postgres 排除在默认限制之外。
xfs_quota -x -c 'limits bsoft=0 bhard=0 lisa' /myxfs
xfs_quota -x -c 'limits bsoft=0 bhard=0 postgres' /myxfs
现在我要去拿一份报告……
xfs_quota -x -c 'report -h' /myxfs
User quota on /myxfs (/dev/sdc1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 22.3G 45G 50G 00 [------]
postgres 59.1G 0 0 00 [------]
lisa 13.4T 0 0 00 [------]
看起来很棒!对吗?错!尽管有这份报告,postgres 和 lisa 仍然受到限制,并且仍在使用默认限制。当我尝试以任一用户身份写入任何内容并再次运行报告时……
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 22.3G 45G 50G 00 [------]
postgres 59.1G 45G 50G 00 [------]
lisa 13.4T 45G 50G 00 [------]
设置已恢复!
为了解决这个问题,你必须设置用户的限制不想要限制为非零值。因此将其设置为非常高的值。我将我的设置为 PB。
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
root 22.3G 45G 50G 00 [------]
postgres 59.1G 1000T 1000T 00 [------]
lisa 13.4T 1000T 1000T 00 [------]
这可以防止我的超级用户和 postgres 数据库受到限制,同时为所有其他用户保持“默认” 50G 的限制。
需要注意以下几点:
- root 用户(或 UID 0)永远不会受到 xfs_quota 的限制(根据手册页)
- 如果你想知道为什么我的报告中没有显示其他用户,那是因为我正在通过 NFS 导出它们,尽管限制有效,我可以在客户端上看到它们,但默认情况下不会在服务器上报告
希望这对某人有帮助。
编辑:您可以通过指定上限来显示更多 UID。例如
xfs_quota -x -c 'report -U 50000 -h' /storage/1
User quota on /myxfs (/dev/sdc1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- ---------------------------------
#0 22.3G 50G 75G 00 [------]
#26 59.1G 1000T 1000T 00 [------]
#1000 13.4T 1000T 1000T 00 [------]
#2615 55.9G 0 0 00 [------]
#2705 207.4M 0 0 00 [------]
#2707 168.1G 50G 75G 00 [-none-]
#2718 178.5M 50G 75G 00 [------]
#16661 245.9M 0 0 00 [------]
#18806 0 50G 75G 00 [------]
#24403 2.5M 0 0 00 [------]
#24583 100K 50G 75G 00 [------]
#26153 4.1G 50G 75G 00 [------]
#26618 40K 0 0 00 [------]
#26765 320K 50G 75G 00 [------]
#27175 15.1G 50G 75G 00 [------]
#27189 2.5M 50G 75G 00 [------]
惊人的!