DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 10.956 ]
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 }
Shell Script básico para gerenciar usuários e bancos no MySQL ou MariaDB
Script para atualização de hora
Instalar o screenFetch em qualquer distribuição
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Instalação de Ubuntu em SSD (interno) como se fosse um dispositivo ext... (1)
Mikrotik não abre o webmail-segur... da Locaweb (10)