Remover kernels antigos com zenity

Publicado por Alysson (última atualização em 15/07/2012)

[ Hits: 4.044 ]

Download remove_kernel.sh




Script para remoção de kernels antigos utilizando interface gráfica Zenity.
Primeiro exibe a lista de kernels instalados, com exceção do kernel atualmente em uso.
Após selecionados, exibe uma confirmação com os itens selecionados antes de iniciar a remoção.

  



Esconder código-fonte

#!/bin/bash
# Remove kernels antigos com zenity.
#   Alysson Gonçalves
#   agalysson@gmail.com
#
# Referências:
#   http://linux.byexamples.com/archives/265/a-complete-zenity-dialog-examples-2/  
#   http://ubuntugenius.wordpress.com/2011/01/08/ubuntu-cleanup-how-to-remove-all-unused-linux-kernel-headers-images-and-modules/
#   

# Exige permissão de administrador
if [ `id -u` != 0 ]; then
    echo É preciso ser root.
    exit 1
fi

# Obtem a lista de kernels instalados e não usados
lista=`dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | cut -d- -f-2)"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/FALSE \1/;/[0-9]/!d'`

if [ -z "$lista" ]; then
    `which zenity` --info --title="Informação" --text="Não há kernels antigos instalados"
    exit 0
fi

# Variavel com o caminho absoluto do zenity e alguns parâmetros
zenity=`which zenity`" --width=400 --height=300 --window-icon=/usr/share/icons/hicolor/48x48/status/aptdaemon-working.png --list --checklist --column Selecione --column Kernel --separator=\n"

# Exibe a lista de kernels que podem ser removidos.
selecionado="`$zenity --title="Selecione os kernels a serem removidos" --text="A versão atual do kernel é: $(uname -r)\nLista de kernels antigos" $lista | sed 's/^/TRUE /g'`"

# Se nenhum for selecionado, sai
[ -z "$selecionado" ] && exit 0

# Pede uma confirmação antes de prosseguir com a remoção
remover="`$zenity --title="Confirme a seleção" --text="Deseja remover os seguintes kernels?" --hide-column=1 $selecionado`"

# Se o "OK" da confimação não for pressionado, sai
[ -z "$remover" ] && exit 0

# Variavel com o caminho absoluto do zenity e alguns parâmetros
zenity=`which zenity`" --width=400 --progress --pulsate --auto-close --no-cancel --window-icon=/usr/share/icons/hicolor/48x48/status/aptdaemon-working.png"

# Executa a remoção dos pacotes
apt-get purge -y $remover | $zenity --title="Removendo pacotes"

Scripts recomendados

Script que identifica na rede a existência de duplicidades de IPs e MACs que utilizam mais de um IP

Instalando o SIESTA no Linux automaticamente

checkip

Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra

Space invaders


  

Comentários
[1] Comentário enviado por removido em 15/07/2012 - 12:59h

Excelente, é de scripts assim que precisamos.

Valeu.

Abs.

[2] Comentário enviado por klebsonp em 15/07/2012 - 21:04h

Esqueceu de dizer que o script só funciona em distribuições Debian-like.

[3] Comentário enviado por lacabeza em 16/07/2012 - 00:49h

É verdade, pequei nesse ponto.
Confesso que nem me passou na cabeça sobre adaptar para outras distros... por não usar outras distros.

xD

[4] Comentário enviado por albfneto em 16/07/2012 - 12:15h

script bom. favoritado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts