Linux/Unix 中每个用户的磁盘使用情况

Linux/Unix 中每个用户的磁盘使用情况

我需要找出网络上每个用户占用了多少磁盘空间。我知道dfdu命令:我可以列出整个文件系统并使用 AWK 输出,但我想知道是否有更标准的命令。

我正在寻找的输出是:

usr1  xMb
usr2  yMb
[...]
Total zMb

有任何想法吗?

谢谢!

附注:Red Hat Linux EE

答案1

这是一次性的事情,还是您希望能够定期提取这些信息?如果是后者,那么一个选择就是在您的文件系统上应用配额。这样做系统会持续跟踪每个用户使用的数据量。这样,信息就只是对配额数据库的查询。

答案2

这是一个简单而快捷的解决方案,我相信它可以满足您的要求。

我假设您的所有用户都在 /home 目录中拥有帐户。您需要做的就是将目录更改为 /home 目录,然后在深度 1 处执行 du。

cd /home
sudo du -d 1 -h

你的输出将会像这样:

kcyow@linux-server:/home$ sudo du -d 1 -h
7.8M    ./user932
52G     ./user575
20K     ./user329
98G     ./user323
48G     ./user210
148G    ./user44
12M     ./kcyow
362G    ./user28
24G     ./user774
6.2M    ./user143
730G    .

答案3

或者查找问题用户(目录也是如此),

du -xk | sort -n | tail -25

对于 Solaris:

du -dk | sort -n | tail -25   

这将为您提供 25 个最大目录的列表。虽然不是您所要求的,但我一直都在使用它。

答案4

我们在很多地方都使用配额系统,但设置了高得离谱的配额。这样您就可以获得快速报告的好处。在一个站点,每个用户都有 1 TB 的“配额”空间。

随着可用磁盘空间的增长,我们会定期提高配额 —— 最初是每位用户 30GB,这在当时是高得离谱的。

相关内容