Remover kernels antigos com zenity

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

[ Hits: 4.117 ]

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

Baixa os pacotes de uma determinada versão do Slackware para posterior atualizaçao

Conversor de logs do svn para rss

Firewall com proxy transparente completo

Salvaguardando configurações.

Backup diario rotativo MySQL + Backup semanal mantendo uma cópia local e remota


  

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