[英]Fast way to get and update disk space usage?
我需要监视网络磁盘空间使用情况,并生成报告列表目录和每个用户的大小。
目录包含1000多个文件,每个文件20mb大。
速度是关键,因为报告需要经常更新。
我的Python脚本遍历给定目录,并将每个目录和文件信息存储到列表字典中。
字典的后处理很快。 I / O是瓶颈。 使用当前脚本,一个35TB的目录大约需要5-6个小时的扫描时间。
我已经尝试了简单的os.walk & stat ,suprocessing du , find- type f -printf 。
他们都深入到底部并统计每个目录,文件。 虽然这是初始运行所必需的,但后续更新会从不必要地统计未修改的目录和文件中获取点击。 而且我无法设置最大深度,因为如果有任何更改,我需要知道子目录中的更改。
这将仅查找文件。 与上面相差不大。 至少这不统计目录(目录信息是从驻留文件中收集的)。 速度没有明显改善。
我曾希望使用目录的修改时间来检查内部是否有更改。 如果是这样,请潜入,否则跳过。 但是mtime仅更新目录中已创建,删除,重命名的项目。
那么,除了对所有目录和文件进行这种蛮力外,没有别的方法吗?
Directory layout:
group_002/
bob/
fubar/
etc/
dave/
jim/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.