Como posso criar uma tarefa cron para excluir dois arquivos a cada 24 horas?

1

Eu sou novo em hospedar meu VPS em um servidor linux do CentOS.

Os seguintes arquivos de log crescem rapidamente e eu gostaria que eles fossem excluídos a cada 24 horas :

/home/httpd/tanguay.info/stats/tanguay.info-custom_log
/home/httpd/tanguay.info/stats/tanguay.info-error_log

/home/admin/__processed_stats/*

Quais seriam as etapas para criar um cron job que exclua todos esses arquivos todas as noites à meia-noite?

    
por Edward Tanguay 21.07.2009 / 01:02

4 respostas

5

Não é recomendado remover arquivos de log imediatamente, pois eles podem ser necessários posteriormente para depuração, estatísticas ou rastreamento de intrusões. Embora o envio de log externo possa ser um exagero em um único cenário de VPS, existem abordagens melhores do que simplesmente excluí-las.

Eu sugiro que você olhe logrotate ou cronolog (Provavelmente disponível como pacote no CentOS). Com esses pacotes, você pode configurar regras para processar arquivos de registro (geralmente) diariamente, como: Mantenha uma semana de registros, mas comprima todos, exceto os de hoje.

    
por 21.07.2009 / 01:06
3

Você também pode reduzir as informações enviadas para os registros. Você pode configurá-lo para registrar apenas erros em vez de informações, avisos e erros. Apenas uma sugestão. Se você quiser excluir os logs, verifique se eles ainda não estão em uso. Gire seus arquivos de log como todos os outros sugeriram. Eles geralmente são comprimidos e excluídos após um período de tempo.

    
por 21.07.2009 / 01:10
2

Logrotate é o melhor método. Em qualquer caso, você precisa enviar o sinal HUP para o httpd depois, caso contrário, o manipulador de arquivo do seu log ficará aberto e seu sistema de arquivos será preenchido, mas não será refletido nos tamanhos dos arquivos.

    
por 21.07.2009 / 02:22
1

Para esvaziar os arquivos todos os dias às 1:00, você pode usar:

0 1 * * * :> /home/httpd/tanguay.info/stats/tanguay.info-custom_log
0 1 * * * :> /home/httpd/tanguay.info/stats/tanguay.info-error_log
0 1 * * * for i in 'ls /home/admin/__processed_stats/'; do :> $i; done

Mas o melhor é usar logrotate

Você também pode querer dar uma olhada em: e Rotação do log de acesso do Apache

    
por 21.07.2009 / 01:08

Tags