如何设置目录的文件大小限制?


8

我的系统上有一个目录,出于特定原因,应用程序和用户会使用该目录,但是我不希望其大小超过2GB,是否可以设置某种限制?是否允许文件大小超过我将来决定为其设置的任何其他大小?

当超过大小限制时,它应该撤消上一次更改(尽管应该有一个选项使它停止运行,并且不关心是否复制了一半文件并保留在那里),然后显示警告用户。

我正在使用GNOME 3.22运行Ubuntu GNOME 16.10。



@JacobVlijm:我现在暂时会接受muru的回答,但是如果您能提供更好的答案,那么我很乐意接受那个答案。

Answers:


19

ext4上的通常文件系统配额是每个用户/组的,而不是每个目录的。ZFS可以通过在ZFS卷之外创建固定大小的文件系统来设置目录配额。但是,一个简单的技巧是创建一个2GB的文件,在其上创建一个文件系统,然后将其安装在所需的文件夹中:

$ touch 2gbarea
$ truncate -s 2G 2gbarea
$ mke2fs -t ext4 -F 2gbarea
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done                            
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: bf1b2ee8-a7df-4a57-9d05-a8b60323e2bf
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

$ sudo mount 2gbarea up    
$ df -h up
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      2.0G  6.0M  1.8G   1% /home/muru/up

在任何情况下,文件系统配额(或类似方法)都不会像您想要的那样友好。这种方法是一种单向灵活的方法,因为您可以在线增加大小,但是减小大小是很困难的。

命令:

  • touchtouch 2gbarea创建一个名为的空文件2gbarea
  • truncatetruncate用于调整文件大小(在这种情况下,我使用将当前空2gbarea文件的大小调整为2 GB -s 2G)。
  • mke2fsmke2fs创建ext2 / 3/4文件系统(在本例中为ext4)。
  • mount 在给定目录上挂载文件系统。
  • df 用于列出文件系统使用情况。

1
新手可能会对命令感到困惑。是否应该解释/链接到它们的目的?
罗希特(Rohitt Vashishtha)

@RohittVashishtha更好吗?
muru 16-10-24

达到配额后,是否有任何方法可以让它启动弹出式警告消息?

@ParanoidPanda“是”吗?我认为文件浏览器在空间不足时会抱怨。
muru 16-10-25,6

@muru:主要我不认为它将是写入该位置的文件浏览器,更有可能是其他特定的应用程序。没有办法“监视”该文件夹,以便当其达到其容量时会弹出图形警告来警告用户?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.