DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 10.822 ]
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 }
Uma loja de apps por linha de comando
Script para desconexão em horário determinado
Converte cada imagem (JPG, JPEG, PNG) em PDFs com o tamanho de papel definido (A4...)
Fazer o download de um website completo
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Porblema com MergeList [RESOLVIDO] (10)
Melhor hospedagem em nuvem para projetos Laravel com baixo custo? [RES... (7)
Como baixar os drivers de áudio no linux mint? (7)
Como posso localizar o arquivo HTML da página inicial do GLPI dentro d... (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta