DELETAR arquivos a X semanas passadas
Publicado por Pedro Augusto Malanga 18/04/2007
[ Hits: 11.020 ]
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 }
Escrever números, datas, horas e outros por extenso
Gerenciador Servidor de Arquivos
Juntar arquivos divididos por HJsplit
Ajustando resolução do monitor
Desktop Linux ganha fôlego enquanto distros refinam experiência e segurança
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Erro ao fazer remaster usando Penguin eggs (1)
Warcraft II Remastered no Linux? (0)
queria saber como instalar o android power tools igual ao winux no lin... (7)