O Linux tem proteção contra bloqueio de arquivos ao tentar renomear / excluir arquivos

2

Eu tenho um cron job que dá início a um novo processo todos os dias. O processo é executado a cada 5 minutos e anexado a um arquivo de log.

Outro cron job é executado a cada 60 minutos. Ele pega alguns dos dados no arquivo de log, limpa, cria um novo arquivo de log. Esse arquivo de log limpo é importado para um banco de dados. O MySQL impede entradas duplicadas, portanto, as primeiras linhas de cada novo arquivo de log limpo são ignoradas.

No final de um dia, estou preso a 24 arquivos de log limpos e um arquivo de log bruto.

Se eu fosse executar o script de limpeza primeiro renomeando o arquivo para pré-processar, fazer o que eu preciso fazer e, em seguida, excluí-lo, causaria algum problema com meu primeiro script cron que está registrando no mesmo arquivo a cada 5 minutos?

Meu medo é que o arquivo de log original esteja sendo gravado e esta outra tarefa do cron esteja tentando renomeá-lo.

SO: Debian 8

Editar: Interessante. Cron irá escrever no arquivo renomeado.

    
por linguru772x 17.08.2015 / 00:02

1 resposta

4

Não existe um mecanismo de bloqueio de arquivos para proteger a renomeação ou a exclusão de arquivos, pois não há necessidade. Renomear ou até excluir um arquivo enquanto ele é aberto por outro processo, mesmo que ele escreva e / ou leia dados ativamente, é inofensivo.

Os processos com o arquivo aberto não veriam diferença e acessariam os dados originais do arquivo renomeado de forma transparente, e até mesmo acessariam um arquivo "excluído" sem perceber que o arquivo foi excluído. A exclusão real só acontecerá quando o processo terminar.

    
por 17.08.2015 / 01:09