DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 11.034 ]
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
}
Converter arquivos CBR para PDF
Text User Interface (TUI) com whiptail
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?









