Szukam rozwiązania Potrzebuję usunąć pliki dziennika, ale może istnieć możliwość, że są one dostępne w momencie wywołania usunięcia. Przez dostęp, mam na myśli proces jest albo czytanie lub zapisywanie do pliku. W takich przypadkach muszę pominąć plik zamiast go usunąć. Również mój serwer to Linux i PHP działa na Apache.Usuń plik, jeśli aktualnie nie jest dostępny
Co szukam jest coś podobnego do (in pseudo-code
):
<?php
$path = "path_to_log_file";
$log_file = "app.log";
if(!being_accessed($log_file))
{
unlink($path.$log_file);
}
?>
Teraz moje pytanie jest w jaki sposób można zdefiniować being_accessed
? Wiem, że może nie być funkcja języka do tego bezpośrednio w PHP. Myślę o użyciu kombinacji sekcjach jak last_access_time
(może?) I flock
(ale ten jest przydatny tylko w tych warunkach, gdzie plik został flock
-ED przez aplikację uzyskującego dostęp)
Wszelkie sugestie/spostrzeżenia mile widziane ...
jak zdefiniować plik "dostęp"? –
Może to być proces albo go czytający, albo zapisujący go. –
nie ma znaczenia na Linuksie, pliki nie zostaną faktycznie usunięte dopóki wszystkie wskaźniki plików do niego nie zostaną zamknięte. – SirDarius