Linux – 每个目录的配额?

我有以下情况:

单个分区挂载为/,具有大量磁盘空间。

有一系列的目录(/ pg / tbs1,/ pg / tbs2,/ pg / tbs3等),我想限制这些目录的总大小。

一个select是制作一些大文件,然后mkfs它们,然后挂载回环,然后设置配额,但这会使扩展有点问题。

有没有其他的方式来使每个目录的配额工作?

    如果你被迫使用ext3,那么使用LVM可能是你最好的解决scheme。 为每个项目创build一个新的文件系统。 这看起来像这样:

     # Create a 10g filesystem for "project1" in volume group "vg0" lvcreate -L 10g -n project1 vg0 # Create an ext3 filesystem. mke2fs -j /dev/vg0/project1 # Mount it (obviously you would want this in /etc/fstab) mount /dev/vg0/project1 /projects/project1 

    越来越多的项目文件系统很容易:

     # Add 2GB to the volume. lvextend -L +2g /dev/vg0/project1 # Grow the filesystem. resize2fs /dev/vg0/project1 

    我其实想这样做一段时间,因为我不想让我的所有虚拟邮件用户的系统用户。 带有配额的ZFS文件系统将会很好,而且zfs-fuse每天都在进步,但是我想要的却是一个非常轻量级的解决scheme。 最后,我决定写一个FUSE文件系统,我可以作为一个层在另一个文件系统(任何基本目录将实际工作)上挂载。 它有一个用于pipe理可轻松编写脚本的配额的实用程序,因为配额值只是作为xattrs存储在目录或文件中,所以一个挂载点可以为任意数量的配额提供支持。

    我已经在邮件服务器上testing了一段时间,最近已经决定已经达到了青春期,并准备发布到野外。 如果您好奇,可以通过http://code.google.com/p/fusequota/查看。 我将不胜感激任何反馈。

    如果您不依赖组权限,则可以为每个“配额目录”使用不同的UNIX组,然后在每个目录上设置sgid位(因此创build的文件和目录将属于目录的组而不是主组的创build者用户),并使用组配额。

    是。 看看XFS文件系统和项目配额。 其他文件系统不提供此function。

    每个共享文件夹的新文件系统是恕我直言过量。 只需为每个共享文件夹创build新组,将共享文件夹的所有者组设置为该组,将粘滞位设置为组(以便每个新文件和目录都将此组作为所有者),并对文件和文件夹的权限使用acl列表。 然后为这些组设置配额。

    我不知道有任何方法来设置每个目录的引号。

    但是沿着你创build有限大小的文件系统的想法。 这可能是一个很好的解决scheme。

    您可以备份/重新安装并使用lvm ,只分配逻辑卷所需的最小空间量。 扩展lvm逻辑卷非常容易。