我知道我可以用来quota
限制每个用户的磁盘空间量。但是我想知道在 Linux 中是否有某种方法可以限制目录的磁盘使用量?理想情况下,我想要类似
limit_space -n 100M ./path/to/directory
任何尝试创建文件或写入超过 100MB 的文件的尝试都将失败,并出现类似的错误,就像您尝试写入已满的磁盘一样。
我知道它会因为符号链接、硬链接、块大小等等而变得复杂。
我之所以问这个问题,是因为我有一个程序会将文件下载到临时目录,我想测试一下如果无法写入文件,它是否能正确执行。模拟磁盘已满是其中一种方法。如果有像这样的快速单行代码,那么我可以轻松测试它。
答案1
如果这只是为了测试目的,我建议你创建一个小型环回文件系统并将其安装在您想要测试完整磁盘的位置。
答案2
您可以为该目录创建单独的分区。如果您不想重新分区硬盘,可以使用循环设备创建虚拟分区(http://en.wikipedia.org/wiki/Loop_device)。
//编辑:这个主题可能会让您感兴趣:https://superuser.com/questions/82025/linux-how-to-create-a-folder-that-behaves-like-a-file/)
答案3
您是否考虑过使用 lvm 来灵活地拥有多个虚拟卷(还有热备份等额外的好处)?
(回送文件系统数量有限)