了解 linux/bsd 上真实目录大小的快速方法

Kar*_* T. 7 linux directory bsd

计算实际目录大小的最快方法是什么?我不知何故发现自己非常需要它。

简单地做:

# du -hs /dir

太慢了。是否有任何我可以运行的服务可以定期计算目录大小并缓存它们以供以后参考?(类似于定位数据库)

Dav*_*ley 6

可悲的是,我不知道任何一个,但写一个应该不会太难。每晚跑一次

# du -a / > /var/lib/filesizes.txt. 
Run Code Online (Sandbox Code Playgroud)

然后你只需要一个小脚本来总结这些。就像是:

# perl -ne 'BEGIN { $total = 0 } if ($_ =~ m/(\d+)\s+\/var\/www\//) { $total+=$1;} END {print "$total\n";}' /var/lib/filesizes.txt
Run Code Online (Sandbox Code Playgroud)

如果你想要一些更多的同步,那么你将不得不开始编写一些使用 inotify 的东西,以找出文件系统何时更改和更新数据库,这可能类似于 bdb。