【问题标题】:Temp files being left over from PHP script on linux/apache临时文件从 linux/apache 上的 PHP 脚本遗留下来
【发布时间】:2013-01-24 08:37:14
【问题描述】:

我刚刚发布了一个客户网站,它的主要目的是分发其他来源的内容,因此它会定期从外部提要中提取文本、视频、图像和音频。

它还可以让客户端手动添加要分发的内容。

使用 PHP 这一切使得使用 copy() 从另一个服务器复制文件,move_uploaded_file() 复制手动上传的文件,它还使用 SimpleImage 图像处理类来制作多个副本,并裁剪等。 .

现在的问题是:在所有这些中,一些临时文件没有被删除,它会很快锁定服务器,因为当 tmp 已满时会导致 mysql 错误并停止页面加载。

我花了很多时间在谷歌上搜索,这让我发现了一件事:“脚本执行完毕后临时文件被删除”——这显然不是这里的情况。

我可以做些什么来确保删除脚本创建的任何临时文件?

我已经和我的服务器人员谈过了,他建议运行一个 cron,每 24 小时从它删除一次,我不知道这是否是一个好的解决方案,但它肯定不是解决方案,因为我相信文件应该得到删除?阻止文件被删除的原因可能是什么?

【问题讨论】:

  • 每 24 小时一揽子删除是一个糟糕的解决方案,您可能会删除尚未复制的文件。相反,您应该删除超过 X 小时的文件。

标签: php scripting temp


【解决方案1】:

不管您想出什么其他方法,cron 的想法仍然是一个不错的想法,因为您要确保 /tmp 得到清理。您可以让 cron 作业删除超过 24 小时的所有内容,而不是每 24 小时删除所有内容,前提是这会留下足够的空间。

在脚本完成时删除临时文件。据我所知,这仅在首先使用tmpfile () 创建临时文件时才会发生。因此,通过其他方式在 /tmp 中创建的其他文件(还有很多其他方式)不会因为脚本完成而消失。

【讨论】:

  • 顺便说一句,您甚至可以让 cron 作业每小时运行一次并删除任何超过 24 小时的内容,这样您就永远不会拥有超过 24 到 25 小时的内容。这样可以每小时减少一次大小。
猜你喜欢
  • 1970-01-01
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2016-06-18
  • 1970-01-01
相关资源
最近更新 更多