Limpar arquivos temporários

Publicado por Phillipe Smith 01/07/2009 (última atualização em 21/09/2009)

[ Hits: 22.731 ]

Homepage: http://phillipelnx.com

Download limpa-temps

Download limpa-temps.sh (versão 2)




Segue um pequeno ShellScript para limpar arquivos temporários do Linux. Aqueles arquivos
com extensões .bak, .tmp ou com um ~ no final do nome do arquivo [ exemplo: arquivo.txt\~ ].

É bem útil! Espero que seja útil para todos também! ;)

  



Versões atualizadas deste script

Versão 2 - Enviado por Phillipe Smith em 20/09/2009

Changelog: Corrigido modo de execução como administrador.

Download limpa-temps.sh


Esconder código-fonte

#!/bin/sh


#################################################################
#                                                               #
# ShellScript para limpeza de arquivos temporários do sistema   #
#                                                               #
# Autor: Phillipe Smith ( SmithuX )                             #
# Email: [email protected]                              #
#                                                               #
#################################################################                                                            


function LINHAS(){
for i in `seq 1 50`
do
   echo -n "="
done
echo -e "\n"
}

function LIMPAR(){

echo -e "\nOs seguintes arquivos fora encontrados: \n"
echo -e  "=============================================\n"
sed -n 'p' $log

if [ -s $log ];then
   echo -e  "\n============================================="
   echo -ne "\nDeseja remover os arquivos listados? [ s ou n ]:  "
   read opcao
   case $opcao in
      's')
      clear   
      while [ $cont -lt  $num ] 
      do
         comando=$cont"p"
         arquivo=`sed -n $comando $log`
         echo -e "\n"
         rm -rfv "$arquivo"
         echo -e "\n"
         cont=`expr $cont + 1`
      done
      
      LINHAS
      echo -e "\t     Operação concluída! \n"
      LINHAS
      rm -rf $log
      killall -9 $(basename $0) 2>/dev/null
      ;;

      'n')
      clear
      LINHAS
      echo -e "\t   Operação cancelada......\n"
      LINHAS
      rm -rf $log
      exit
      ;;

      *)
      clear
      echo -e "\n====> '$opcao' não é uma opção válida. <====\n\n"
      LIMPAR
      ;;
   esac
else
   clear
   LINHAS
   echo -e "\tNenhum arquivo temporário encontrado.\n"
   LINHAS
   rm -rf $log
fi
}

if [ $(whoami) != "root" ]; then
echo -e   """\n
==================================================
Caso você execute o aplicativo como usuário comum, 
somente será possível excluir arquivos temporários 
onde seu usuário tem permissão.
==================================================\n
"""

echo -n "Deseja executar como root? [ s ou n ]: "
read opt

if [ $opt == "s" ]; then
   su root -c `which $(basename $0)`
else if [ $opt == "n" ];then
   continue
else
   echo "Opção Inválida...."
   exit
fi
fi
fi

clear
echo "Procurando arquivos temporários.................."

log="/tmp/temps.log"
procurar=$(find / -iname "*~" -o -iname "*.bak" -o -iname "*.tmp" > $log 2> /dev/null)
num=`wc -l $log | awk '{print $1}'`
num=`expr $num + 1`
cont=1

LIMPAR


Scripts recomendados

Liberação do servidor DNS no firewall

Script de Backup para FITA DAT usando "tar"

Menu para servidor LDAP

Exemplos de scripts com dialog

Instalação completa de servidor de e-mail


  

Comentários
[1] Comentário enviado por erasmo em 20/09/2009 - 17:16h

Phillipe Smith,

esta dando este erro:

./limpa-temps: 12: Syntax error: "(" unexpected

erasmo

[2] Comentário enviado por Smithux em 20/09/2009 - 21:15h

Opa Erasmo!
Obrigado por reportar.

Verifiquei o script novamente e gostaria que você testasse.

Segue o link para download: http://pastie.org/624042

Obrigado!

[3] Comentário enviado por removido em 21/09/2009 - 09:02h

Bonitinho seu script. Eu tinha um desses no meu pc. One liners para fazer esse trabalho:

find $HOME -iname "*~" -exec rm -f {} \;

só trocar o argumento do -iname por "*.bak", "*.tmp", etc. Ou:

for i in *~ *.bak *.tmp; do
find $HOME -iname "$i" -exec rm -f {} \;
done

[4] Comentário enviado por rweu em 03/04/2011 - 19:15h

Fala Phillipe,

Aqui é o rweu, do Arch, blz de script meu garoto!!

Valeu!!

[5] Comentário enviado por corrosiontears em 16/06/2012 - 18:53h

Pergunta. Caso eu queria adicionar esse e o outro Script de Limpeza de Cache no /etc/cron.hourly/ vai funcionar bem? E é recomendável eu limpar os arquivos temporários de hora em hora? Ou é melhor eu agendar num período mais longo?

[6] Comentário enviado por Smithux em 16/06/2012 - 21:22h

carrosiontears, na verdade como o script necessita de parâmetros, é melhor colocar sua rotina no /etc/cron.d e agendar um período mais longo, tipo final do dia.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts