svuota_vecchi.ksh

Questo script:
- Si appoggia ad un file esterno per la lista delle dir in cui lavorare.
- Ricerca il primo file con mtime della giornata corrente.
- Usa questo file come riferimento per rimuovere tutti i files (compreso il riferimento) presenti nella dir che abbiano mtime piu' vecchio.


#!/bin/ksh
#Crea la variabile $DATE con la quale trovare il file di riferimento
DATE="`date '+%b %d'`"
#Creare  a priori un file con la lista delle dir da svuotare
#Nell'esempio è directory.txt

for i in `cat directory.txt`
do
cd "$i"
FILE=`ll -t $i | grep "$DATE"| tail -1|awk 'BEGIN {FS=" ";}{print ($9);}'`
echo "Entro nella dir: $i"
echo "File di riferimento: $FILE"
#ATTENZIONE!!! l'ultimo comando (xargs rm) è pericoloso!
#Provare prima con un comando "innocuo" tipo ls

find . -type f ! -newer "$FILE" | xargs rm
cd -
done

Fate molta attenzione!
Se usato male potrebbe avere effetti collaterali indesiderati e critici!
Controllare bene che il file esterno abbia realmente solo le dir che interessa gestire.
Verificare prima l'effetto dello script sostituendo xargs rm con, ad esempio, xargs ls.

Privacy Policy