DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 11.079 ]
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
}
Backup das bases de dados do MySQL
bloqueando TODAS as PORTAS do EMULE
Compilação do kernel linux-libre 4.4.6 com cflags -march=native + -Ofast
CoDe_X - Compactador/Descompactador de arquivos e diretórios usando Xdialog
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Fiz uma pergunta no fórum mas não consigo localizar (13)
Quais os códigos mais dificeis que vcs sabem fazer? (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









