Linux工具跟踪一段时间内的目录空间


8

是否有任何通用的Linux工具可以随时间跟踪磁盘空间,而不仅仅是整个文件系统,例如,因此我可以轻松查看历史上哪些目录树膨胀和收缩了?问题发生在服务器上,尽管常规清理了缓存和tmp文件,日志等,它们似乎仍然会达到0可用空间。我已经使用了,之类的工具dfdu并且lsof经常并计划at作业以在文件容量较低时查找超过一定大小/类型的老化文件。水印被打等

最好是Debian / Ubuntu软件包。


我认为您想要的东西比du -s在cron中运行更友好,对吧?
peterph

1
我认为他们想要对磁盘空间利用率进行历史性的计算,例如通过执行“ sar”命令获得的CPU或I / O利用率。
Bratchley

可以使用监视和提取(ext3)日记中的相关数据的工具以较低的开销来完成此任务吗?
Michael Martinez

Answers:


3

几件事情会使创建这样的工具成为问题:

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

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

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


可以将用户空间脚本整合到例如。记录du来自所有/某些目录的cron的定期快照,将它们存储在SQL / CSV中供以后分析以缩小何时使用存储空间,并提供友好的报告来查明此情况。希望能够放大目录层次结构。但这很耗时,我希望即使不完美(硬链接等),也存在类似的问题。
Marcos

1
我想知道这是否可以用某些监视文件系统日志的工具来完成,而其开销比“ du -s”少得多?
Michael Martinez
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.