如何跟踪不断增长的目录?

2 scripting linux unix shell bash

我的系统经常出现磁盘空间不足的情况。我将编写一个脚本来清理变大的目录。通常这些是日志目录。鉴于机器的性质,我不需要保留日志。

我想编写一个脚本来显示所有大小不断增加的目录,这样我就可以确保该列表变为 0。

我在想这样的事情

1. du /
2. wait 24 hrs
3. du /
4. find all instances where the file size increased
Run Code Online (Sandbox Code Playgroud)

它看起来很简单,但我的问题是 du 适用于文件和目录,你不能仅适用于目录。我怎样才能克服这个问题?

小智 5

你可以使用 find 来知道 24 小时内修改了什么,

find / -type d name \* -mtime 1 -print
Run Code Online (Sandbox Code Playgroud)

应列出过去 24 小时内更改的所有目录,但请记住,实际上更改的是文件而不是目录。

另一种方法是做

du -s *  | sort > currentsize
Run Code Online (Sandbox Code Playgroud)

这按起始位置中的目录和文件进行总结,但是,您可以每天存储它,将该文件移动到旧大小,再次运行命令

然后

比较当前大小旧大小

你可以看到发生了什么变化。

您可以使用 awk 来决定是更大还是更小..

所有系统日志也会发生变化。

但我所说的原始发现显示了过去 24 小时内更改的文件。您也可以使用基于此的东西。