有什么简单的方法可以找出哪个进程在指定目录中创建文件?

有什么简单的方法可以找出哪个进程在指定目录中创建文件?

我拥有一个第三方 ubuntu 14.10 机器的超级用户 ssh 访问权限,但配置有误:某个进程在目录中创建了大量临时文件(并且没有清除它们,导致 inode 限制缓慢耗尽)。有没有简单的方法可以找出究竟是哪个进程在创建这些文件?我假设只有一个进程将文件添加到该目录中,并且最初目录是空的(我可以清除它)。当然,我可以推测这是某个执行 PHP 代码的 nginx 进程或某个 Python 守护进程 - 但确切知道这一点将节省我很多时间。

答案1

如果进程仍在运行且文件仍处于打开状态,“lsof”将告诉您其进程 ID。如果进程更短暂,则可以使用 inotify 来“抓住”刚刚创建的文件:这套工具有一些可以包装在 shell 脚本中的用户空间内容,以及一些不错的例子。

我相信您已经尝试过查看文件——谁知道那里面可能有什么线索?

或者,你可以使用脂肪痕迹- 原始提问者发现的有用信息 - 玩得好!似乎包装了 inotify/lsof 类型的功能,非常方便。

相关内容