我有一个超级用户 ssh 访问配置错误的第三方 ubuntu 14.10 框:某些进程在目录中创建了许多临时文件(并且不清除它们,慢慢耗尽 inode 限制)。有什么简单的方法可以找出创建文件的过程到底是什么?我假设只有一个进程将文件添加到该目录,并且最初 dir 是空的(我可以清除它)。当然,我可以推测它是一些执行 PHP 代码的 nginx 进程或一些 Python 守护程序 - 但肯定会为我节省很多时间。
我有一个超级用户 ssh 访问配置错误的第三方 ubuntu 14.10 框:某些进程在目录中创建了许多临时文件(并且不清除它们,慢慢耗尽 inode 限制)。有什么简单的方法可以找出创建文件的过程到底是什么?我假设只有一个进程将文件添加到该目录,并且最初 dir 是空的(我可以清除它)。当然,我可以推测它是一些执行 PHP 代码的 nginx 进程或一些 Python 守护程序 - 但肯定会为我节省很多时间。
如果进程仍在运行并且仍然打开文件,“lsof”会告诉你它的进程 ID。如果它更短暂,那么您可以使用 inotify 让您“突袭”刚刚创建的文件:这组工具有一些您可以包装在 shell 脚本中的用户空间内容,以及一些不错的示例。
我相信你已经尝试过查看文件——谁知道里面可能有什么线索?
或者,您可以使用fatrace - 由原始提问者帮助发现 - 玩得很好!似乎包装了 inotify/lsof 类型的功能,这很方便。