随时间推移跟踪目录空间的 Linux 工具

Mar*_*cos 8 filesystems disk-usage maintenance df

是否有任何常见的 Linux 工具可以随时间跟踪磁盘空间,而不仅仅是整个文件系统,但例如,这样我就可以轻松查看历史上哪些目录树膨胀和收缩?发生该问题上似乎保持击球尽管缓存和TMP文件,日常房子清洁0可用空间的服务器日志等等。我已经使用像工具df,du并lsof经常和调度at工作超过一定尺寸/类型低时发现旧文件水印被击中等。

最好是 Debian/Ubuntu 软件包。

Bra*_*ley 3

有几件事会让创建这样的工具出现问题:

  1. 内核不保留目录或特定于文件的文件大小历史记录(就像它对内存使用情况、I/O 活动或 CPU 时间所做的那样),因此写入的任何内容都必须位于用户空间中。
  2. 即使某些东西是使用 inotify 或其他东西编写的,在繁忙的服务器上,用户空间守护进程在每次文件更改后记录“du -s”输出的开销也会很大。在不太繁忙的服务器上,您可能不会有这个问题。因此,您会遇到这样的情况:该工具仅对无力承担其管理费用的人有用。
  3. Zabbix 或 Nagios 等网络监控守护进程包含一些原始的磁盘利用率监控(整个文件系统)以及满足大多数管理员在这方面的需求的历史记录。除此之外的需求通常是中断/修复您进入有问题的文件系统的位置,并在事后检查什么占用了空间(使用网络监控对可能的问题进行主动警告)。
  4. 如果您确实需要了解这一点,并且等待主动警告在再次发生时通知您(以便您可以检查出来)不是一个选择,那么您最终可以编写一个脚本来监视您所关心的目录关于。(基本上以某种方式记录“find /path/to/dir -type d -exec du -sh {} \;”的输出,这样您就可以轻松查看)。

因此,没有真正需要创建用户空间工具来执行此操作,因为很难正确执行此操作,并且现有的解决方案可以让您非常接近理想状态。

简短回答:我不知道有这样的工具,但不存在也是有道理的。

  • 我可以将用户空间脚本组合在一起,例如。记录所有/某些目录的 cron 定期“du”快照,将它们存储在 SQL/CSV 中以供以后分析,以缩小存储消耗的时间范围,并制作友好的报告来查明这一点。人们希望能够放大目录层次结构。但这很耗时,我希望存在类似的东西,即使不完美(硬链接等)。 (3认同)