什么 BASH 命令可以匹配在 /opt 中填满大量磁盘空间(大约 30%)的用户?

什么 BASH 命令可以匹配在 /opt 中填满大量磁盘空间(大约 30%)的用户?

有时我们会遇到无法弄清楚是什么原因导致磁盘被填满的问题。因此,如果我们有一个 BASH 单行代码/脚本,可以随时间捕获用户的 uid 和 pid,那么我们就可以直接接近这些用户。监控工具会告诉您 I/O 峰值的时间,但您不知道是什么原因造成的。因此,这样的一句话将会很有用。这适用于所有基于 Linux 的系统。

一种方法可能是检测系统调用。这个问题适用于所有 Linux 系统。我不知道我在这里缺少什么。

答案1

这给出了下面 20 个最大的文件的/opt大小和用户名

find /opt/ -type f -printf "%s\t%u\t%p\n" | sort -k1,1n | tail -n 20

答案2

如果相关文件的所有权/组未提供您所需的信息(即通过丁克的回答),事后您将无法轻松确定谁做了什么。

也许您可以根据当时登录的人员抓取系统日志,并结合提升权限的日志来拼凑证据——此类日志的可用性取决于您的设置,特别是用户如何切换到另一个帐户来创建数据。这不太可能是您正在寻找的“一线”。

否则,您正在考虑启用auditd并使用它来主动监视/opt目录/文件系统的更改。有了这个,你的“一个衬垫”就是审计日志的事后过滤器。

参见示例:如何监控文件/目录变化

但是,审核日志可能很大,因此这会给您带来新的考虑。

相关内容