DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 10.755 ]
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 }
Localizando tentativas de invasão
Instalador de macromedia flash para comps AMD Athlon 86_64
xpock-dl: baixe vídeos do xpock.com.br (v20071030)
Script para geração de mala direta usando svg
Script para automatizar instalação do Gentoo
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Desenvolvimento de um driver (8)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba