Script per rimuovere i file obsoleti

Con questo script è possibile cancellare tutti i file nelle sottocartelle di /mnt/server che siano più vecchi di un mese rispetto ad oggi.

#!/bin/bash
IFS='

'
rm /tmp/lista
rm /tmp/mark
for X in /mnt/server ; do
        if [[ ! $X =~ /mnt/server/temp ]] ; then
                touch -t $(date +%y%m%d --date='-1 month')0001 /tmp/mark
                find /mnt/server/ ! -newer /tmp/mark -type f > /tmp/lista
                for Y in $(cat /tmp/lista) ; do
                        rm $Y
                done
        fi
done

Con il ciclo for esamina tutte le sottocartelle di /mnt/server su cui agire. Quindi con il controllo if esamina che non siano processate tutte le cartelle che cominciano con “temp”, in quanto non devono interessare il nostro processo. Con touch crea un file di demarcazione temporale, e con find crea una lista di raffronto in base al file creato con touch. Infine rm rimuove i file della lista.

Comments are closed.