DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 11.167 ]
Olá Galera,
Fiz um script que deleta arquivos de um diretório específico com data de criação a X semanas passadas.
Não sei se no linux já tem alguma ferramenta pronta para isso ou se alguém já fez algo semelhante, mas valeu pela diversão...
Abracos.
#!/bin/bash
## Forma de trabalhar
## ./deleta.sh caminhoARQUIVOS camilhoLOG email QuantidesDeSemanaPassadasdaAtual
## Pode haver problemas com permissoes por exemplo vc tentar executar
## este script com um usuario nao root tentando deletar dentro
## de uma pasta que somente o root em acesso.
if ([ -z $1 ]); #|| [ -z $2 ] || [ -z $3 ] || [ -z $4 ]);
then
clear
echo "Voce deve passar o comando com 4 parametros";
echo "Ex. ./deleta.sh caminho caminhodolog email qtddesemanas";
exit
fi
clear
hora=`date +%H:%M-%D`
diretorio=$1
dias=`date +%Y%W`
log=$2
email=$3
qtd=$4
echo "Diretorio a ser varrido:" $diretorio ":: Diretorio do log: " $log;
dias=`expr $dias - $qtd`
echo "Quantida solicitadas:" $qtd ":: Semana a ser excluida: " $dias;
echo "Email do log:" $email;
declare -a arquivos
arquivos=(`find $diretorio -type f -printf "%TY%TW:%p\\n"`)
x=0;
while [ $x != ${#arquivos[@]} ]
do
echo "Elemento numero"
echo $x;
echo "Nome do arquivo dentro do array"
echo ${arquivos[$x]};
cortarsemana=`echo ${arquivos[$x]} | cut -f 1 -d :`
if [ $cortarsemana == $dias ]; then
cortar=`echo ${arquivos[$x]} | cut -f 2 -d :`
echo "EXCLUINDO: " $cortar;
rm $cortar -f
RETVAL=$?
if [ $RETVAL = "1" ]
then
echo "Problemas ao deltar arquivo" $cortar;
echo $hora " -- ERRO -- Problemas ao deletar" $cortar >> $log/DELETA_LOG;
echo $hora " -- ERRO -- Problemas ao deletar" $cortar | mail -s "Testando" $email;
else
if [ $RETVAL = "0" ]
then
echo "Exclusao com sucesso do arquivo: " $cortar;
echo $hora " -- PODE -- Exclusao feita no arquivo:" $cortar >> $log/DELETA_LOG;
echo $hora " -- PODE -- Exclusao feita no arquivo:" $cortar | mail -s "Testando" $email;
fi
fi
else
echo "Nao remover pq nao é de uma semana atras";
echo $hora " -- NAO -- Nao remove porque nao esta dentro da data:" $cortar >> $log/DELETA_LOG;
echo $hora " -- NAO -- Nao remove porque nao esta dentro da data:" $cortar | mail -s "Testando" $email;
fi
let "x = x +1"
done
exit
}
Gerenciador de arquivos youtube-dl
Backup c/ LOG, Grava CD e manda LOG p/ email
Shell Script para Linux HOWTOs
Redimensionador automático de imagens
A produção de áudio e vídeo no Linux e as distribuições dedicadas a esse fim
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Zen Kernel no Arch Linux (instalar e remover)
Como instalar e remover o kernel Liquorix
Fazendo o controle de Xbox 360 USB funcionar no One Piece Pirate Warriors 4 (Arch Linux/Steam)
GLPI Cards de filtros de pesquisa (0)
Enquete: qual bloco de código C++ é mais legível? (3)









