Estoy buscando una solución Necesito eliminar archivos de registro, pero podría haber una posibilidad de que se acceda en el momento en que se realiza la llamada de eliminación. Al acceder, quiero decir que un proceso es leer o escribir en el archivo. En tales casos, debo omitir el archivo en lugar de eliminarlo. También mi servidor es Linux y PHP se ejecuta en Apache.Eliminar archivo si actualmente no se está accediendo
Lo que estoy buscando es algo similar a (in pseudo-code
):
<?php
$path = "path_to_log_file";
$log_file = "app.log";
if(!being_accessed($log_file))
{
unlink($path.$log_file);
}
?>
Ahora mi pregunta es ¿cómo puedo definir being_accessed
? Sé que podría no haber una función de lenguaje para esto directamente en PHP. Estoy pensando en usar una combinación de secciones como last_access_time
(tal vez?) Y flock
(pero esto sólo es útil en aquellas condiciones donde el archivo se flock
-ed por la aplicación que accede)
Cualquier sugerencia/penetraciones dan la bienvenida ...
cómo se define el archivo "siendo accedido"? –
Puede haber un proceso ya sea leyéndolo o escribiéndolo ... –
no importa en Linux, los archivos no se eliminarán hasta que se cierren todos los punteros de archivo. – SirDarius