没有魔法。为了收集磁盘使用情况,您必须遍历文件系统。如果您正在寻找一种仅在文件系统级别执行此操作的方法,那将很容易(仅df -h作为示例)...但听起来您希望它在安装点内的目录级别。
您也许可以在每个目录上并行运行作业。例如在 bash 中:
for D in `ls -d */`
do
du -s $D &
done
wait
Run Code Online (Sandbox Code Playgroud)
但我认为你可能会受到 I/O 限制。另外,如果您有很多顶级目录,则此方法可能......嗯......相当繁重,因为它没有对最大进程数进行任何类型的管理。
如果您安装了GNU Parallel,您可以执行以下操作:
ls -d */ | parallel du -s
Run Code Online (Sandbox Code Playgroud)
……这样会好很多。 parallel有很多不错的功能,例如对输出进行分组、管理最大进程等...并且您还可以传入一些参数来对其进行一些调整(尽管,就像我之前提到的,您将受到 I/O 限制,所以更多进程并不是更好,事实上少于默认值可能更好)。
我对此唯一的其他想法是,disk quotas如果这确实是您想要做的事情的重点,那么也许可以使用。如果您想阅读的话,这里有一个很好的教程。
| 归档时间: |
|
| 查看次数: |
9448 次 |
| 最近记录: |