PHP创建.nfs00000文件?

Posted

技术标签:

【中文标题】PHP创建.nfs00000文件?【英文标题】:PHP creating .nfs00000 files? 【发布时间】:2015-10-29 19:47:56 【问题描述】:

我有一个 php 应用程序,它在测试系统和生产系统上都运行良好。

但是我的应用程序的另一个用户写信给我,它在他的系统上创建了很多文件 .nfs00000* 并减慢了页面的加载速度。

我的应用程序不会在文件系统上创建任何文件,所有数据都存储在 mysql 中。所以我对此感到非常惊讶。但是那个用户从他的网站上删除了我的 PHP 应用程序,问题就消失了。

老实说,我对 .nfs00000* 文件一无所知,也无法通过谷歌搜索出任何关于它们的合理信息。有人可以尝试给我解释一下,它们是什么,为什么要创建它们以及我是否可以做任何事情来避免它们的创建?

谢谢,洪扎

【问题讨论】:

SF:SE already has a question on this. 似乎是某种日志文件。让用户检查文件的内容。也许他的电脑上缺少应用程序所需的东西 askubuntu.com/a/348137 【参考方案1】:

也许这会有所帮助:

在 linux/unix 下,如果您删除当前正在运行的进程仍然打开的文件,则该文件并没有真正删除。一旦进程关闭文件,操作系统就会删除文件句柄并释放磁盘块。当打开和删除的文件位于 NFS 挂载的文件系统上时,此过程会稍微复杂一些。由于打开文件的进程在一台机器上运行(例如办公室或实验室的工作站),并且文件位于文件服务器上,因此两台机器必须有某种方式来传达有关此文件的信息。 NFS 执行此操作的方式是使用 .nfsNNNN 文件。如果您尝试删除其中一个文件,并且该文件仍处于打开状态,它只会以不同的编号重新出现。因此,为了完全删除文件,您必须终止打开它的进程。

如果你想知道这个文件是什么进程打开的,你可以使用'lsof .nfs1234'。但是请注意,这仅适用于打开文件的进程正在运行的机器。因此,如果您的进程在一台机器(例如 bobac)上运行,而您在其他一些 burrow 机器(例如筒仓或草原狗)上运行 lsof,您将看不到任何东西。

(Source)

如果您的应用正在删除或修改某些文件,则可能是导致问题的原因。

【讨论】:

以上是关于PHP创建.nfs00000文件?的主要内容,如果未能解决你的问题,请参考以下文章

nfs挂载后无法创建文件

NFS(网络文件系统)的创建及挂载使用

NFS 创建文件(覆盖)= 零大小?

nfs4_setfacl - 用户可以创建文件但不能创建目录

NFS(expirtfs命令,NFS客户端创建新文件所属组和所属主都为nobody)

立即执行“创建或替换视图”给出 00900。00000 -“无效 SQL 语句”错误