我正在寻找一种解决方案,我需要删除日志文件,但可能存在删除调用时访问它们的可能性。通过访问,我的意思是一个过程是读或写文件。在这种情况下,我需要跳过该文件而不是删除它。另外我的服务器是Linux和PHP在Apache上运行。如果当前未被访问,则删除文件
我所寻找的是类似(in pseudo-code
)的东西:
<?php
$path = "path_to_log_file";
$log_file = "app.log";
if(!being_accessed($log_file))
{
unlink($path.$log_file);
}
?>
现在我的问题是如何可以我定义being_accessed
?我知道在PHP中可能没有直接使用语言功能。我正在考虑使用部分的组合像last_access_time
(也许?)和flock
(但是这仅仅是在那些条件所在的文件是由flock
访问应用-ed有用)
任何建议/洞察力欢迎...
你如何定义“正在访问”文件? –
可能有一个进程读取它或写入它.. –
在Linux上并不重要,文件将不会实际删除,直到所有文件指针都将被关闭。 – SirDarius