Arquivar diretórios com subdiretórios não modificados em x dias

1

Eu tenho procurado uma maneira de arquivar o nosso servidor de arquivos por algum tempo, mas não encontrei uma solução de trabalho. O objetivo é pesquisar em um diretório e seus subdiretórios para arquivos não modificados nos últimos x dias. Quando não há arquivos encontrados no pai ou em seus subdiretórios, todo o diretório pai deve ser arquivado (ou pelo menos impresso na tela). Qualquer sugestão é apreciada! Saudações, João

    
por John 19.06.2018 / 10:29

1 resposta

0

Uma resposta simples é usar o argumento "newer" do comando find, que encontra qualquer arquivo mais novo que outro arquivo. Como o que queremos é na verdade o inverso, precisaremos de um script que conte os arquivos que foram modificados (ou seja, sejam mais recentes) e imprima o nome do diretório, se NONE for encontrado.

DATE='date -d "-30 days"' #Calculate a date 30 days before today
touch -d "$DATE" /tmp/newer #Create a temp file with the calculated date

#Assume we're passing in a list of directories
#We could just as easily find any directory below a certain point without
#newer files by setting DIR='find /what/ever/directory -type d'

for DIR in $* 
do
    MOD='find "$DIR" -newer /tmp/newer | wc -l' #Count the number of newer files
    if [ "$MOD" -eq 0 ] 
    then
        echo $DIR   # Nothing new in 30 days - Print the name of the Dir
    fi
done
    
por 25.06.2018 / 05:57