Existem alguns arquivos de log criados após um determinado período de tempo com o carimbo de data/hora.
/mylog/path
Log_file_2018-07-19-22-55-31Z.tgz
Log_file_2018-07-20-01-29-11Z.tgz
Log_file_2018-07-20-10-36-49Z.tgz
Log_file_2018-07-21-18-26-36Z.tgz
Eu preciso excluir logs mais antigos com base na data. Por exemplo, quero apenas os logs dos últimos 5 dias e os logs mais antigos devem ser excluídos. O número de arquivos de log criados diariamente varia. Como conseguir isso?
Você pode fazer com
mtime
(tempo modificado) nofind
comando.-mindepth 1
significa processar todos os arquivos, exceto os argumentos da linha de comando.-mtime +5
irá verificar os arquivos modificados 5 dias atrás.-delete
vai deletarComo seu achado não tem a
-mtime
opção, acho que essa é a maneira mais simples:Se você sempre deseja excluir os arquivos de log depois de cinco dias, mas por algum motivo não deseja usar
logrotate
, pode usarcron
(crontab -e
para editar o crontab) para executar o seguinte script diariamente: