快速获取完整目录大小的方法

问题描述 投票:1回答:1

我的应用程序需要尽可能快地获得总目录大小。 Standart du命令对于大目录来说效果很慢。 Linux inotify的可能解决方案不适用于NFS。所以我最终得到了这些变体:

  • 在app中跟踪文件更改(非常难)
  • 每天运行一次du命令来收集应用程序的数据
  • 一个简单的索引器(具有类似inotify的功能,可以立即检测到变化)

最后的方式似乎是一个解决方案,但我没有找到这样的软件。它应该像Dropbox客户端那样工作。我不知道dropbox如何捕捉变化。

有什么建议?

filesystems size du
1个回答
0
投票

我想我会保留目录(树中的每个节点)的记录,并且只有当它们被触摸时(找出使用它的最后写入访问时间)我才会每天重做一次du(或者在你的情况下看似可行) )。

当然,这只会发现由于创建和删除文件(或重命名)而导致的更改,但我认为这并不是那么相关。如果在不创建新文件的情况下更改文件大小,则无法正常工作。但在大多数用例中,这种方法可以很好地工作。

© www.soinside.com 2019 - 2024. All rights reserved.