Desinstalando todos os programas instalados a partir de uma data específica

Nesse meu primeiro artigo vou mostrar como é possível desinstalar todos os programas instalados no Linux a partir de uma data fornecida pelo usuário. Fiz este procedimento utilizando uma distribuição baseada no Debian, ou seja, só serão desinstalados os pacotes ".deb", porém com alguns ajustes pode ser facilmente adaptado para outra distribuição.

[ Hits: 19.671 ]

Por: ssssssssss em 26/07/2007


Mãos à obra...



Crie uma pasta e dentro dela crie um arquivo chamado pacotes.awk. Agora, abra-o com seu editor de textos e cole o seguinte código nele:

BEGIN {
   #Aqui você configura a partir de qual data quer que sejam
   #desinstalados os programas. Mude estas três variáveis de
   #acordo com suas necessidades.


   dia = 99
   mes = 99
   ano = 2999

   pacotes # não altere esta linha
  
}
{
        data=$1
        split(data, nova_data, "-")
   TAno=nova_data[1]
   TMes=nova_data[2]
   TDia=nova_data[3]

   if ($3 == "install"){
      if (TAno > ano){
         pacotes = pacotes " " $4
      }else{
         if (TAno == ano){
            if (TMes > mes){
               pacotes = pacotes " " $4
            }else{
               if (TMes == mes){
                  if (TDia >= dia){
                     pacotes = pacotes " " $4
                  }
               }
            }
         }
      }
   }
}
END {
# Aqui é retornada a lista de pacotes a serem desinstalados
print pacotes
}

Nas linhas onde temos:

dia = 99
mes = 99
ano = 2999

você substitui pela data a partir da qual todos os pacotes instalados serão removidos. Ou seja, se você por exemplo colocar dia=01, mes=01 e ano=2007, então todos os pacotes instalados ou atualizados após 01/01/2007 serão removidos. Confira antes para não desinstalar algo que não deve.

Agora salve e feche o arquivo.

Para rodar o script, abra um terminal e vá para a pasta onde você salvou o arquivo pacotes.awk.

Agora logue-se como root:

$ su
<senha_de_root>

Copie e cole esta linha agora:

# apt-get remove `awk -f pacotes.awk /var/log/dpkg.log`

Quando executá-la será como se tivesse digitado "apt-get remove" seguido do nome de todos os pacotes instalados a partir da data que foi configurada no script acima. Será perguntado se deseja realmente desinstalar todos estes pacotes, se estiver certo, responda que sim e todos os pacotes serão desinstalados.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Mãos à obra...
   3. Considerações finais
Outros artigos deste autor

TORCS – Instalação e criação de um bot simples

Leitura recomendada

Enviando mensagens para usuários da rede

Redundância de links - Mon + Shell Script

Ajustando a hora do micro com extrema precisão

Linux com boot no Pendrive, com todas as facilidades: Smart-USB_Key-Mania, PLOP Boot Manager e outros métodos

Solução para provedores - Receber aviso no celular quando ocorrer perda de pacote, hosts parados ou pacotes duplicados

  
Comentários
[1] Comentário enviado por comfaa em 08/10/2008 - 10:44h

vlw cara, muito útil !!

abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts