如何跟踪目录中当前正在增长的文件

如何跟踪目录中当前正在增长的文件

我有一个本地文件系统,它通过 nfs(非常大的 xfs 分区)导出为 rw。

某个地方(我无法确定谁或什么远程进程)正在写入文件、创建新文件或更新附加更多数据;并且可用磁盘空间很快就不足了。

为了确定哪些文件可以安全地移动到其他地方,我考虑了以下命令:

find . -type f -mtime +15 -size +100M
find . -type f -mmin -2 

但是有没有一种通用方法可以调用 find 或任何其他系统实用程序来跟踪当前正在增长/正在写入(远程)的文件?

答案1

最简单的方法可能是使用iotop它就像top但列出 I/O 操作。这应该会显示哪些进程/文件正在写入最多的数据。

NAME
       iotop - simple top-like I/O monitor

DESCRIPTION
       iotop  watches  I/O  usage  information output by the
       Linux kernel (requires 2.6.20 or later) and  displays
       a  table of current I/O usage by processes or threads
       on the system. At least  the  CONFIG_TASK_DELAY_ACCT,
       CONFIG_TASK_IO_ACCOUNTING,  CONFIG_TASKSTATS and CON‐
       FIG_VM_EVENT_COUNTERS options need to be  enabled  in
       your Linux kernel build configuration.

答案2

交叉发布自服务器故障

如果您的写入不频繁,您也可以使用:

tree -h -x /my/directory/path > my_current_tree_$(date '+%+Y_%m_%d_%H_%M_%S')

一段时间后再次调用,然后diff文件:

diff --suppress-common-lines --side-by-side my_current_tree*

您可以在上面交叉发布的答案中找到更多信息。不过,这不会显示写入文件的进程。为此,您可以auditctl按照此使用线

相关内容