Script per conservare gli n file più recenti in una dir

Mi è capitato di voler tenere traccia di operazioni effettuate da script con dei file di log. Se si chiama il file di log con un nome tipo anno-mese-giorno (es:script1_AAAAMMGG.log) il numero di log cresce continuamente.

Con questo script che lancio periodicamente, vengono conservati i solo gli ultimi n file più nuovi.

Utilizzo:
keepnewestonly.sh [directory to check] [opt:maxnum] [opt:filepattern] [opt:T (testonly)]

dove

  • il primo parametro è la directory in cui effettuare la pulizia
  • il secondo (opzionale, default =20) è il numero di file che si vogliono conservare
  • il terzo (opzionale) è il file pattern, nel caso la directory contenga anche altri file che devono sempre rimanere e quelli da cancellare abbiano una parte del nome ricorrente
  • il quarto (opzionale) se impostato a T, mostra a video cosa verrebbe conservato e cosa cancellato in caso di esecuzione, per testare i parametri

Lo script si basa sull’ordinamento di file in una directory in base alla data di ultima modifica: ls -act logfile*.

Leave a Reply

Your email address will not be published.