quinta-feira, 16 de dezembro de 2010

Script para limpar kernels antigos após a atualização do #Linux

Quem usa Linux sabe que são frequentes as atualizações de pacotes, especialmente se você apontar para os repositórios não-oficiais dos desenvolvedores de aplicativos muito utilizados, como Chromium, Firefox ou Open Office.

Com as atualizações do kernel, menos frequentes, há um efeito comum, mas que pode se tornar indesejado com o tempo: a não remoção de kernels anteriores. Entendo que este comportamento é importante por permitir o acesso aos kernels anteriores em caso de problema com a atualização, mas ao longo do tempo o lixo acumulado passa a incomodar.

Assim sendo, um script que remova automaticamente os kernels mais antigos seria bastante útil, não é mesmo ? Segue então o script sugerido pelo Lifehacker, e que pode ser facilmente encontrado, em inúmeras formas e variantes, no commandlinefu. Vamos ao script:


#/bin/bash
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | grep -v `uname -r` > /tmp/kernelList
for I in `cat /tmp/kernelList`
do
aptitude remove $I
done
rm -f /tmp/kernelList
update-grub


Bom proveito aos leitores Linuxers!

 

Siga-nos no Twitter!
Receba os textos via e-mail ou RSS!

Confira outros textos sobre o tema!

2 comentários:

  1. estou com uma duvida tenho o kermel dos linux ubuntu:

    10.04
    10.10
    11.04 beta

    o 11.04 beta nao funciona, então eu uso o 10.10, vc citou que o programa vai limpar todas as versão antigas apenas restando a mais nova, ou seja a que não funciona, mesmo eu executando dentro do 10.10 ?

    sergio.gion@gmail.com

    ResponderExcluir
  2. Sérgio,
    Na verdade, este script limpa todos os kernels menos aquele em execução.
    Note que ele verifica o /boot e monta uma lista com todos os kernels menos aquele que corresponde ao "uname -r", ou seja, aquele que está em execução.
    De todo modo, não uso mais ele, e costumo usar um procedimento um pouco diferente pra limpar os kernels no meu Ubuntu.
    Faço um dpkg -l | grep linux-image e rodo um apt-get remove linux-image-... para cada kernel, e depois repito o processo para os pacotes linux-source...
    Em resumo, é provável que o script mantenha o kernel que está funcionando pra você, mas na dúvida você pode remover manualmente.

    ResponderExcluir