是否有任何常见的 Linux 工具可以随着时间的推移跟踪磁盘空间,而不仅仅是整个文件系统,例如,这样我就可以轻松地看到哪些目录树在历史上膨胀和缩小了?该问题发生在服务器上,尽管对缓存和 tmp 文件、日志等进行了例行清理,但它们似乎始终达到 0 可用空间。我已经使用 、df
和du
等工具lsof
经常并安排at
作业来在低时查找超过特定大小/类型的陈旧文件水印被击中等。
最好是 Debian/Ubuntu 软件包。
答案1
有几件事会让创建这样的工具出现问题:
- 内核不保留目录或特定于文件的文件大小历史记录(就像它对内存使用情况、I/O 活动或 CPU 时间所做的那样),因此写入的任何内容都必须位于用户空间中。
- 即使某些东西是使用 inotify 或其他东西编写的,在繁忙的服务器上,用户空间守护进程在每次文件更改后记录“du -s”输出的开销也会很大。在不太繁忙的服务器上,您可能不会有这个问题。因此,您会遇到这样的情况:该工具仅对无力承担其管理费用的人有用。
- Zabbix 或 Nagios 等网络监控守护进程包含一些原始的磁盘利用率监控(整个文件系统)以及满足大多数管理员在这方面的需求的历史记录。除此之外的需求通常是中断/修复您进入有问题的文件系统的位置,并在事后检查什么占用了空间(使用网络监控对可能的问题进行主动警告)。
- 如果您确实需要了解这一点,并且等待主动警告在再次发生时通知您(以便您可以检查出来)不是一个选择,那么您最终可以编写一个脚本来监视您所关心的目录关于。 (基本上以某种方式记录“find /path/to/dir -type d -exec du -sh {} \;”的输出,这样您就可以轻松查看)。
因此,没有真正需要创建用户空间工具来执行此操作,因为很难正确执行此操作,并且现有的解决方案可以让您非常接近理想状态。
简短回答:我不知道有这样的工具,但不存在也是有道理的。