
vmmello
(usa Slackware)
Enviado em 17/09/2010 - 15:06h
O find pode fazer a primeira parte de remover os arquivos não modificados há mais de 15 dias, mas pra fazer isso exclusivamente em diretórios com a permissão 1777 precisa escrever um script. Antes de escrever o script eu só vou considerar duas coisas.
Por exemplo, pra remover arquivos não modificados há mais de 15 dias que estão no diretório /tmp:
# find /tmp -type f -mtime +15 -exec rm -f {} \; -ls
Caso tu saiba quais são os diretórios com a permissão 177 pode passar como o primeiro argumento para o find, por exemplo:
# find /tmp /var/tmp -type f -mtime +15 -exec rm -f {} \; -ls
Mas pra descobrir os diretorios automaticamente teria que ser com um script do tipo:
#!/bin/bash
#
# cria um arquivo temporario pra guardar a lista de diretorios 1777
TMP_ARQ_DIRS=$(mktemp)
# salva a lista de diretorios 1777 no arquivo $TMP_ARQ_DIRS
# e descarta as mensagens de erro: 2>/dev/null
find / -type d -perm 1777 -print 2>/dev/null >$TMP_ARQ_DIRS
# agora lê cada diretorio (linha) no arquivo e executa o find pra achar
# arquivos nao modificados há mais de 15 dias
while read L_DIR; do
find "$L_DIR" -type f -mtime +15 -exec rm -f {} \; -ls
done < $TMP_ARQ_DIRS