目录大小限制

在Linux中,可以限制分区的大小,例如限制配额。 但是是否存在限制目录大小的方法? 例如,我有一个目录,让/mnt/foo/bar ,这不是一个分区(例如不在df结果)。 可能吗? 这个目录没有可能的mkfs

不是直接的,你可以创build一个你想限制目录的大小的文件,然后使用循环挂载将其挂载到树中。

  • 创build一个文件作为文件系统使用
    • fallocate -l 100M disk.img (这不总是与底层的FS兼容)
    • dd if=/dev/zero of=disk.img count=512k
  • 在磁盘映像上创build一个文件系统
    • mkfs disk.img
  • 安装图像
    • mount -o loop disk.img /path/to/mount/point (也可以启用配额)

你所要求的将是一个很好的function,但我不知道有这样的function的任何文件系统。 不添加更多文件系统的最佳近似将是使用限制每个用户(或组)的存储空间的配额。

每个目录的一个问题是,一旦考虑到文件可能被硬链接的可能性,语义不会很明显。

考虑以下一系列事件:

  • pipe理员configuration每个主目录1GB配额的系统
  • user1运行一个程序,在〜user1中创build一个日志文件
  • 当日志文件是1MB时, user2在〜user2中创build一个硬链接
  • user2将〜900MB的其他文件添加到〜user2
  • user1将900MB的数据附加到日志文件中
  • user1user1删除日志文件

上述操作中没有任何一项是由于配额限制而导致的。 然而结果是用户2最终超过了配额。