Hola a todos, en veces necesitamos eliminar kernels antiguos en nuestro Fedora, pero resulta tedioso hacerlo cada vez que actualizas y lo peor es que siempre son los mismos comandos, para eso existen los scripts que son lineas de código ejecutadas en bash o en dash donde se especifican los comandos y algoritmos que sirven para realizar una tarea en el sistema.
A continuación copiaré el código y vendrá brevemente explicado después del guión:
#!/bin/bash
- elegimos el programa interprete de comandos en este caso bash.
echo "Bienvenido, debe ejecutar este script con permisos de Super Usuario o como root."
- echo imprime con un espacio de linea el texto o variables que le indiquemos en consola.
echo
- escribir "echo" solo imprime un espacio de linea o un enter por así decirlo.
version=`uname -r`
- tenemos la variable "version" la cual es un string o una variable con texto en la cual almacenamos el nombre y la versión del kernel que se está usando, "uname -r" es el comando que nos devuelve esto.
echo "kernel actual: kernel-$version"
- imprimimos en pantalla la version actual que el usuario tiene instalada.
versiones=`rpm -qa | grep -i kernel | grep -v devel | grep -v loop | grep -v headers | grep -v $version`
- obtenemos por medio del programa rpm, los kernel que están instalados en el sistema menos el actual.
if test "$versiones" = ""; then
- este if (condicional) nos dice que si no tienes kernels viejos te salgas del programa ejecutando antes lo que viene debajo.
echo "kernels antiguos: Ninguno"; echo; sleep 1
- le decimos al usuario que no tiene kernels antiguos.
echo "Al no tener kernels antiguos no se realizará ninguna acción."
else
- si, sí tienes kernels antiguos se ejecutará lo que sigue.
echo "kernels antiguos: $versiones"
- informa al usuario los kernel que desinstalara.
echo
echo "comando ejecutado \"sudo yum remove -y $versiones\""
- informa al usuario el comando que ejecuta para desinstalarlos.
echo "Se desinstalaran los kernels antiguos tenga paciencia..."; sleep 1
sudo yum remove -y $versiones
- se ejecuta el comando que desinstalará los kernels antiguos.
echo
echo "Se han eliminado los kernels antiguos éxitosamente."
fi
- termina el condicional.
echo; echo "Gracias por usar este script.";echo "Escrito por: Jorge Ulises Useche Cuellar"
Ahora que he terminado de explicarlo les copiaré el código del script que tiene comentado como instalarlo si pensamos hacerlo:
#INSTRUCCIONES DE INSTALACIÓN
#1. Guarda el texto de este archivo en un fichero sin extensión, yo lo llamé rmoldkernels.
#2. Guardalo en la dirección /usr/bin/rmoldkernels, puedes hacerlo con nano u otro editor
#que te permita guardarlo con permisos de root por ejemplo: $ sudo nano /usr/bin/rmoldkernels
#y pegar el código con ctrl + shift + v.
#3. Dale permisos de ejecución con el comando: $ sudo chmod +x /usr/bin/rmoldkernels
#4. Ahora puedes ejecutar el script escribiendo desde una consola: $ sudo rmoldkernels
#
##COMIENZO DEL SCRIPT
#!/bin/bash
echo "Bienvenido, debe ejecutar este script con permisos de Super Usuario o como root."
echo
version=`uname -r`
echo "kernel actual: kernel-$version"
versiones=`rpm -qa | grep -i kernel | grep -v devel | grep -v loop | grep -v headers | grep -v $version`
if test "$versiones" = ""; then
echo "kernels antiguos: Ninguno"; echo; sleep 1
echo "Al no tener kernels antiguos no se realizará ninguna acción."
else
echo "kernels antiguos: $versiones"
echo
echo "comando ejecutado \"sudo yum remove -y $versiones\""
echo "Se desinstalaran los kernels antiguos tenga paciencia..."
sleep 1
sudo yum remove -y $versiones
echo
echo "Se han eliminado los kernels antiguos éxitosamente."
fi
echo; echo "Gracias por usar este script.";echo "Escrito por: Jorge Ulises Useche Cuellar"
Buena suerte.