在 Linux 中,如何对磁盘分区强制执行每日写入限制?

在 Linux 中,如何对磁盘分区强制执行每日写入限制?

我想对我的磁盘分区强制执行某些写入限制。我想限制应用程序每小时、每天或每周可以在给定磁盘分区上写入的数据量。

Linux 中是否有标准方法来指定 Linux 中给定磁盘分区上每小时/每天/每周的写入限制?cgroupsV2 似乎在给定分区上提供了每秒 IO 限制的选项,但我没有看到每小时/每日限制的选项。

答案1

这两个资源使您能够在磁盘分区上设置时间限制的写入配额;第一个是预安装的 xfs_quota 实用程序,第二个是“quotatool”,可通过 Git Hub 获取。

第一个资源:xfs_quota

xfs_quota 是一个可以交互式或通过命令使用的实用程序。使用它,您可以根据给定用户、一组用户或项目设置特定时间的写入配额。

要使用管理命令,请按如下方式启动交互式实用程序(作为命令的一部分,我在设置配置之前包含 f 开关,以防止出现错误“路径:外部文件系统。使用 -f 调用 xfs_quota 来启用。”):

#xfs_quotas -xf

xfs_quota> help

df [-bir] [-hN] [-f file] -- show free and used counts for blocks and inodes

disable [-gpu] [-v] -- disable quota enforcement

....

Use 'help commandname' for extended help.

红帽命令示例,要分别设置软块限制 1000m 和硬块限制 1200m,以对 /target/path 文件系统进行分组记帐,请使用以下命令:

xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path

在这里您可以阅读有关 xfs_quota 的更多信息:https://linux.die.net/man/8/xfs_quota

第二个资源:quotatool

Linux、Mac OS X、FreeBSD、OpenBSD、NetBSD、Solaris 和 AIX 上文件系统配额的命令行实用程序

时间参数 (t) 由可选的“+”或“-”修饰符、数字以及以下之一组成:“秒”、“分钟”、“小时”、“日”、“周”和“月” 。

回答您问题的示例:在 /home 上将全局块宽限期设置为一周:

quotatool -u -b -t "1 week" /home

您可以在这里访问该工具:https://github.com/ekenberg/quotatool

相关内容