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.