gpt4 book ai didi

php - 如何使用php复制文件并截断​​原始文件而不丢失数据

转载 作者:可可西里 更新时间:2023-10-31 23:42:35 24 4
gpt4 key购买 nike

我有一个生成日志文件的 PHP 脚本。另一方面,我有另一个脚本应该每小时运行一次来​​处理日志文件。

在我的第二个脚本中,我想复制并截断正在写入的日志文件,而不会丢失任何数据。

在有限的测试中,我一直在使用重命名来创建副本,我得到了预期的结果

但我担心这种方法的正确性。

这样做安全吗?

最佳答案

您正在做的称为“日志轮换”,是的,通过重命名日志文件来执行此操作是安全的。

  • 在 Linux 中,您可以在另一个应用程序写入文件时重命名文件,并且该应用程序将继续写入重命名的文件。参见 this SO answer了解详情。

  • 在 Windows 中,如果打开文件的应用程序在调用 CreateFile 时设置了 FILE_SHARE_DELETE 标志,则只能重命名打开的文件。 .如果设置了标志,它的工作方式与在 Linux 上相同(应用程序继续写入重命名的文件)。如果未设置,任何重命名文件的尝试都将失败。

您可能还对 logrotate 感兴趣命令。

关于php - 如何使用php复制文件并截断​​原始文件而不丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com