获取非常大文件夹大小的快速方法

Zak*_*akS 5 storage

我通常必须处理大约 1 TB 大小的文件夹(其中包含子文件夹),并且由于存储限制,我需要经常删除文件夹以保持在分配的容量内。

我通常有 30-40 个文件夹,每个文件夹最多包含大约 13 个子文件夹。

有没有快速获取文件夹大小的方法?

我已经du -s .从父文件夹中尝试过,但是 .. 速度不是很快。

感谢帮助!

小智 2

由于目录大小通常在一天内保持稳定,并且在一天中的某个时刻快速获取大小信息非常重要,因此最适合您的方法是提前自动收集信息。如果您的用户具有所需的读取权限,则只需将这一行放入您自己的 crontab ( crontab -e) 中以在每晚凌晨 2:30 运行即可:

30 2 * * * ( date ; du --summarize path1 path2 ; date ) >> $HOME/du_out.txt
Run Code Online (Sandbox Code Playgroud)

当您对结果更加有信心时,您可以将其扩展为脚本,也许在系统范围的 cron 容量中运行,以便其他管理员可以维护它,并添加有关创建或访问日期的信息,以自动删除旧和最大的文件(如果有)空间太小(大概您已经有了一种机制,因此应该保留更长时间的重要目录被“提升”到另一个位置)。

当然,如果您已经拥有一个全面的构建系统,例如 jenkins,请忘记我所说的有关 cron 的所有内容,并将其创建为那里的工作。