Lost Bob Blog (TG&OS)

novembre 28, 2010

Script per rimuovere i vecchi kernel su Ubuntu

Filed under: Linux,Ubuntu — lostbob @ 11:10 am

In un momento di follia e applicando un po’ di quello che ho imparato in un corso base di amministratore Linux ho deciso di provare a fare uno script per automatizzare l’eliminazione dei vecchi kernel su Ubuntu, ma potrebbe funzionare anche su altre distribuzioni basate su Debian.

Lo script richiede per essere usato di essere root o usare sudo , comunque questo viene controllato. Inoltre è necessario avere installato aptitude ed anche questa condizione è controllata.

Lo script prevede un parametro search oppure remove , il primo mostrerà solo gli eventuali kernel da eliminare il secondo lancerà la rimozione dei pacchetti chiedendo comunque conferma.

Lo script in pratica si limita ad eliminare i pacchetti relativi al kernel di versione diversa da quello in uso , quindi dopo che è stato aggiornato il kernel fare un reboot prima di lanciare lo script, altrimenti verrà cancellato anche il pacchetto relativo all’ultima release del kernel.

ATTENZIONE: usatelo a vostro rischio e pericolo

Per chi abbia voglia di postare suggerimenti per lo script , che è sicuramente migliorabile, può usare questo post.

Lo script è presente qui sotto:

#!/bin/bash
###Info
# About: Script for cleaning old kernel
# version : 0.01
# Use at you own risk!
# by Lost Bob (lostbob.wordpress.com)
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
###
apt=/usr/bin/aptitude
pkgKernel='linux-image'
type='-generic'
version=$(uname -r)
virtualpkg=$pkgKernel$type
# Kernel actually installed
kernelInst=$pkgKernel"-"$version

# Testing root or sudo
if [ $(id -u) -ne 0 ]; then
	echo "must be root"
	exit 1
fi

# Testing aptitude
if [ ! -x $apt ]; then
	echo "you must install aptitude"
	exit 1
fi

echo "Kernel installed " $kernelInst
case "$1" in
	-z)
		echo "usage $0 search or remove"
		exit 1;;
	'search')
		operation=$1;;
	'remove')
		operation=" -P "$1;;
	*)
		echo "usage $0 search or remove"
		exit 1;;
esac

# all kernel package installed without virtual package and actual version
$apt $operation "?name($pkgKernel) ?installed ?not(?name($virtualpkg)) ?not(?name($kernelInst))"

Per utilizzarlo copiare il test in un file .sh (io l’ho chiamato _cleanOldKernl.sh ) rendetelo eseguibile e lanciatelo.

Consiglio di spostarlo in /sbin così per lanciarlo basterà usare solo il nome dello script più il suo parametro.

Suggerimenti per script per rimuovere i vecchi kernel su Ubuntu

Filed under: Linux,Ubuntu — lostbob @ 11:07 am

Tema: Rubric. Blog su WordPress.com.

Iscriviti

Get every new post delivered to your Inbox.