我正在尋找一種解決方案,我需要刪除日誌文件,但可能存在刪除調用時訪問它們的可能性。通過訪問,我的意思是一個過程是讀或寫文件。在這種情況下,我需要跳過該文件而不是刪除它。另外我的服務器是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