我想对我的磁盘分区强制执行某些写入限制。我想限制应用程序每小时、每天或每周可以在给定磁盘分区上写入的数据量。
Linux 中是否有标准方法来指定 Linux 中给定磁盘分区上每小时/每天/每周的写入限制?cgroups
V2 似乎在给定分区上提供了每秒 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