我有一个复杂的设置,两个系统在两台具有共享空间的计算机上运行。
其中一个系统下载了大文件并在共享空间中创建了符号链接。另一个系统(Windows 系统)认为没有剩余空间。
我想做的是限制 Linux 中一个文件夹中文件的大小。换句话说,目录(和子目录)将只包含最大 1MB 的文件。任何大于 1MB 的文件都将被忽略。可以做到吗?
谢谢。
答案1
我担心只能为整个系统(针对每个文件)设置最大文件大小限制。
ulimit -f <size_in_blocks>
您还可以通过从虚拟文件系统(文件)挂载目录来限制目录的总大小:
dd if=/dev/zero of=~/disk_image count=<size_in_blocks>
mkfs -t ext3 ~/disk_image
mount -o loop=/dev/loop0 ~/disk_image <directory>
答案2
我想到另一种方法是安排一个 cronjob 在 Linux 机器上每分钟或按照您选择的间隔运行一次,执行一个脚本,查找大于 1M 的任何文件并将其删除或移动到另一个目录进行审查。
对于脚本,请考虑使用“find”
man find
一个例子:
find /home/user/storage -type f -size +1M
这将查看 /home/user/storage 目录并查找大于 1MB 的文件。您还可以将 -exec 添加到该行以对找到的文件执行操作。
答案3
您可以使用名为quota的产品,它似乎是在Red Hat上预装的。
查看以下链接
http://souptonuts.sourceforge.net/quota_tutorial.html http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html
我从来没有亲自管理过这个,但是我曾经在安装了这个的系统上工作过并且它似乎有效。
让我知道你相处得如何
詹姆士