繁体   English   中英

快速获取和更新磁盘空间使用情况的方法?

[英]Fast way to get and update disk space usage?

我需要监视网络磁盘空间使用情况,并生成报告列表目录和每个用户的大小。
目录包含1000多个文件,每个文件20mb大。
速度是关键,因为报告需要经常更新。

我的Python脚本遍历给定目录,并将每个目录和文件信息存储到列表字典中。
字典的后处理很快。 I / O是瓶颈。 使用当前脚本,一个35TB的目录大约需要5-6个小时的扫描时间。

我已经尝试了简单的os.walkstat ,suprocessing dufind- type f -printf

os.walk和du

他们都深入到底部并统计每个目录,文件。 虽然这是初始运行所必需的,但后续更新会从不必要地统计未修改的目录和文件中获取点击。 而且我无法设置最大深度,因为如果有任何更改,我需要知道子目录中的更改。

查找类型f

这将仅查找文件。 与上面相差不大。 至少这不统计目录(目录信息是从驻留文件中收集的)。 速度没有明显改善。

我曾希望使用目录的修改时间来检查内部是否有更改。 如果是这样,请潜入,否则跳过。 但是mtime仅更新目录中已创建,删除,重命名的项目。

那么,除了对所有目录和文件进行这种蛮力外,没有别的方法吗?

Directory layout:
group_002/
    bob/
        fubar/
        etc/
    dave/
    jim/

不知道这样做是否会更快,但是您可以尝试生成用户目录列表,然后在磁盘使用情况下通过此配方运行它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM