From add56873fad5966b65ccb0fcd2c089b4508e53da Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Thu, 22 Feb 2024 21:00:41 +0100 Subject: [PATCH] Update actualizar.sh --- src/actualizar.sh | 57 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/src/actualizar.sh b/src/actualizar.sh index be01301..80d88fd 100644 --- a/src/actualizar.sh +++ b/src/actualizar.sh @@ -1,6 +1,17 @@ #!/bin/bash -# Script per a actualitzar i netejar Linux +# Script: actualizar.sh +# Descripción: Este script de bash tiene como objetivo actualizar y limpiar un +# sistema Linux. Utiliza colores para mensajes y maneja la salida +# de forma controlada con Ctrl + C. Presenta títulos para cada +# sección, como la limpieza de paquetes innecesarios, la +# actualización de repositorios y la actualización de paquetes +# snap. Además, solicita confirmación antes de realizar ciertas +# operaciones, como la actualización de paquetes. La última sección +# agradece al usuario por mantener su sistema actualizado. +# Author: Manuel Vergara +# Web: https://vergaracarmona.es +# # Colores COLOR_RED='\e[31m' @@ -9,8 +20,10 @@ COLOR_RESET='\e[0m' # Control de salida con Ctrl + C function ctrl_c() { - echo -e "${COLOR_RED}\n\n[!] Saliendo... \n${COLOR_RESET}" - tput cnorm; exit 1 + echo -e "${COLOR_RED}\n\n[!] Saliendo... \n${COLOR_RESET}" + tput cnorm + log_message "El script se ha detenido debido a una interrupción del usuario." + exit 1 } # Ctrl+C @@ -18,20 +31,37 @@ trap ctrl_c SIGINT # Títulos function print_title { - local title="$1" - local title_length=${#title} - local total_length=22 + local title="$1" + local title_length=${#title} + local total_length=22 - # Calcular el tamaño del margen izquierdo y derecho - local margin_length=$(( (total_length - title_length - 4) / 2 )) + # Calcular el tamaño del margen izquierdo y derecho + local margin_length=$(((total_length - title_length - 4) / 2)) - # Asegurarse de que el número total de almohadillas sea siempre 22 - local left_padding=$(( margin_length )) - local right_padding=$(( margin_length + (title_length % 2) )) + # Asegurarse de que el número total de almohadillas sea siempre 22 + local left_padding=$((margin_length)) + local right_padding=$((margin_length + (title_length % 2))) - echo -e "${COLOR_BLUE}\n$(printf '#%.0s' $(seq 1 $left_padding))#### $title ####$(printf '#%.0s' $(seq 1 $right_padding))\n${COLOR_RESET}" + echo -e "${COLOR_BLUE}\n$(printf '#%.0s' $(seq 1 $left_padding))#### $title ####$(printf '#%.0s' $(seq 1 $right_padding))\n${COLOR_RESET}" } +# Verificar permisos de superusuario +if [ "$EUID" -ne 0 ]; then + echo "Este script debe ejecutarse con privilegios de superusuario." + log_message "Error: Este script debe ejecutarse con privilegios de superusuario." + exit 1 +fi + +# Logging +LOG_FILE="/var/log/linux_update_script.log" + +function log_message() { + local message="$1" + echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" >>"$LOG_FILE" +} + +log_message "Iniciando el script de actualización y limpieza." + print_title "ANEM A ACTUALITZAR" print_title "AUTOREMOVE" @@ -75,5 +105,6 @@ else echo "No hi ha actualitzacions disponibles amb el gestor de paquets \"snap\"." fi -print_title "GRACIES PER ACTUALITZAR EL SISTEMA" +log_message "El script se ha ejecutado correctamente." +print_title "GRACIES PER ACTUALITZAR EL SISTEMA"