From 1d62cd3a86daefb76520d9a00047f590e2c1079c Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Sat, 24 Feb 2024 00:21:04 +0100 Subject: [PATCH] Update some scripts --- ...ers.sh => create-kind-ingress-2workers.sh} | 37 ++++++----- 01_bash/curlman.sh | 9 +-- 01_bash/install_list_asdf.sh | 19 +++--- 01_bash/lineas_fichero.sh | 13 ++-- 01_bash/pruebaRed.sh | 65 ++++++++++--------- 01_bash/repeat_random_color.sh | 21 ++++-- 6 files changed, 92 insertions(+), 72 deletions(-) rename 01_bash/{create-kind-ingress--2workers.sh => create-kind-ingress-2workers.sh} (68%) diff --git a/01_bash/create-kind-ingress--2workers.sh b/01_bash/create-kind-ingress-2workers.sh similarity index 68% rename from 01_bash/create-kind-ingress--2workers.sh rename to 01_bash/create-kind-ingress-2workers.sh index 86a090e..2eed1a8 100755 --- a/01_bash/create-kind-ingress--2workers.sh +++ b/01_bash/create-kind-ingress-2workers.sh @@ -1,4 +1,4 @@ -#!/bin/sh +!/bin/bash set -o errexit # Script: create_kind_cluster.sh @@ -9,39 +9,40 @@ set -o errexit # Web: https://vergaracarmona.es # - COLOR_RED='\033[0;31m' COLOR_RESET='\033[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}" + exit 1 } # Ctrl+C trap ctrl_c SIGINT - # Función para configurar el registro Docker local configurar_registro_local() { - reg_name='kind-registry' - reg_port='5001' + reg_name='kind-registry' + reg_port='5001' - if [ "$(docker inspect -f '{{.State.Running}}' "${reg_name}" 2>/dev/null || true)" != 'true' ]; then - docker run -d --restart=always -p "127.0.0.1:${reg_port}:5000" --name "${reg_name}" registry:2 - fi + # Eliminar el contenedor existente si es necesario + docker rm -f "${reg_name}" || true - if [ "$(docker inspect -f='{{json .NetworkSettings.Networks.kind}}' "${reg_name}")" = 'null' ]; then - docker network connect "kind" "${reg_name}" - fi + # Verificar si la red "kind" existe, si no, crearla + if [ -z "$(docker network ls --filter name=kind -q)" ]; then + docker network create kind + fi + + # Iniciar el contenedor del registro Docker local + docker run -d --restart=always -p "127.0.0.1:${reg_port}:5000" --network="kind" --name "${reg_name}" registry:2 } # Función para documentar el registro local documentar_registro_local() { - reg_port='5001' - echo "\nConfigurando el registro local...\n" - cat </dev/null 2>&1 @@ -92,9 +92,8 @@ while IFS= read -r program; do echo -e "\e[31mError al obtener la última versión de $program: $latest_version\e[0m" fi print_newline -done < "$input_file" +done <"$input_file" # Listar las instalaciones actuales echo -e "\nListado de instalaciones actuales:" list_asdf_current - diff --git a/01_bash/lineas_fichero.sh b/01_bash/lineas_fichero.sh index 2d70d3c..3a5176b 100755 --- a/01_bash/lineas_fichero.sh +++ b/01_bash/lineas_fichero.sh @@ -1,15 +1,15 @@ -#! /bin/bash +#!/bin/bash # Colores BLUE="\033[34m" RED="\033[31m" NOCOLOR="\033[0m" - # Control de salida con Ctrl + C function ctrl_c() { - echo -e "${RED}\n\n[!] Saliendo... \n${NOCOLOR}" - tput cnorm; exit 1 + echo -e "${RED}\n\n[!] Saliendo... \n${NOCOLOR}" + tput cnorm + exit 1 } # Ctrl+C @@ -19,7 +19,6 @@ trap ctrl_c SIGINT for fichero in $(ls); do if [[ -f "$fichero" ]]; then cuenta=$(cat "$fichero" | wc -l) - echo -e "El fichero ${BLUE}$fichero ${NOCOLOR}tiene ${RED}$cuenta ${NOCOLOR}lineas" -fi + echo -e "El fichero ${BLUE}$fichero ${NOCOLOR}tiene ${RED}$cuenta ${NOCOLOR}lineas" + fi done - diff --git a/01_bash/pruebaRed.sh b/01_bash/pruebaRed.sh index b7c0ee5..ceeca8d 100755 --- a/01_bash/pruebaRed.sh +++ b/01_bash/pruebaRed.sh @@ -10,7 +10,8 @@ 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 + tput cnorm + exit 1 } # Ctrl+C @@ -21,14 +22,14 @@ function print_title { 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 )) - + 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) )) - + 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}" } @@ -37,7 +38,7 @@ print_network_info() { local interface=$1 local ip_lan_4=$(ip addr show "$interface" | grep 'inet ' | awk '{print $2}') local ip_lan_6=$(ip addr show "$interface" | grep 'inet6' | awk '{print $2}') - + if [ -z "$ip_lan_4" ] && [ -z "$ip_lan_6" ]; then printf "${COLOR_BLUE}|${COLOR_RESET}${COLOR_YELLOW} %-16s ${COLOR_RESET}${COLOR_BLUE}|${COLOR_RESET} ${COLOR_RED}%-35s ${COLOR_RESET}${COLOR_BLUE}|${COLOR_RESET}\n" "$interface" "No tiene" else @@ -63,7 +64,10 @@ print_network_table() { # Comprobación de dependencias check_dependencies() { for cmd in "jq" "nordvpn" "speedtest"; do - command -v "$cmd" >/dev/null 2>&1 || { echo >&2 "${COLOR_RED}$cmd no está instalado. Instálalo con 'sudo apt-get install $cmd'${COLOR_RESET}"; exit 1; } + command -v "$cmd" >/dev/null 2>&1 || { + echo >&2 "${COLOR_RED}$cmd no está instalado. Instálalo con 'sudo apt-get install $cmd'${COLOR_RESET}" + exit 1 + } done } @@ -79,17 +83,17 @@ network_info=() # Comprobar conexión check_connection() { print_title "COMPROBAR CONEXIÓN" - if ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1; then + if ping -c 1 -W 2 8.8.8.8 >/dev/null 2>&1; then echo -e "\t${COLOR_GREEN}Conexión exitosa con 8.8.8.8${COLOR_RESET}" else echo -e "\t${COLOR_RED}Error de conexión con 8.8.8.8${COLOR_RESET}" - + # Obtener la interfaz predeterminada default_interface=$(ip route show default | awk '/default/ {print $5}') - + # Probar la conexión con el router router_ip=$(get_router_ip "$default_interface") - if ping -c 1 -W 2 "$router_ip" > /dev/null 2>&1; then + if ping -c 1 -W 2 "$router_ip" >/dev/null 2>&1; then echo -e "\t${COLOR_GREEN}Conexión exitosa con el router ($router_ip)${COLOR_RESET}" else echo -e "\t${COLOR_RED}Error de conexión con el router ($router_ip)${COLOR_RESET}" @@ -123,7 +127,6 @@ check_websites() { done } - # Obtener las interfaces de red get_interfaces() { print_title "TARJETAS DE RED" @@ -148,8 +151,8 @@ nordvpn_status() { # Nueva conexión nordvpn nordvpn_connect() { - print_title "CONECTANDO NORDVPN" - nordvpn connect Spain Barcelona + print_title "CONECTANDO NORDVPN" + nordvpn connect Spain Barcelona } # Test de velocidad @@ -159,7 +162,7 @@ speed_test() { } # Realizar traceroute -traceroute(){ +traceroute() { print_title "TRACEROUTE" mtr -c 3 -n -r 8.8.8.8 } @@ -174,22 +177,26 @@ main_menu() { echo "4 - Información de IP pública" echo "5 - Estado de NordVPN" echo "6 - Conectar Nordvpn" - echo "7 - Test de velocidad" + echo "7 - Test de velocidad" echo "8 - Traceroute" echo "9 - Salir" - + read -p "Ingrese el número de la opción deseada: " choice case $choice in - 1) check_connection ;; - 2) check_websites ;; - 3) get_interfaces ;; - 4) get_public_ip_info ;; - 5) nordvpn_status ;; - 6) nordvpn_connect ;; - 7) speed_test ;; - 8) traceroute ;; - 9) echo -e "${COLOR_RED}\nSaliendo...\n${COLOR_RESET}"; tput cnorm; exit 0 ;; - *) echo -e "${COLOR_RED}\nOpción inválida. Inténtelo de nuevo.${COLOR_RESET}" ;; + 1) check_connection ;; + 2) check_websites ;; + 3) get_interfaces ;; + 4) get_public_ip_info ;; + 5) nordvpn_status ;; + 6) nordvpn_connect ;; + 7) speed_test ;; + 8) traceroute ;; + 9) + echo -e "${COLOR_RED}\nSaliendo...\n${COLOR_RESET}" + tput cnorm + exit 0 + ;; + *) echo -e "${COLOR_RED}\nOpción inválida. Inténtelo de nuevo.${COLOR_RESET}" ;; esac done } diff --git a/01_bash/repeat_random_color.sh b/01_bash/repeat_random_color.sh index f820869..5e4e37c 100755 --- a/01_bash/repeat_random_color.sh +++ b/01_bash/repeat_random_color.sh @@ -1,17 +1,30 @@ #!/bin/bash +# Colores +COLOR_RED='\e[31m' +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 +} + +# Ctrl+C +trap ctrl_c SIGINT + TXT='Vendo opel corsa de color platino en muy buen estado' -WORDS=( $TXT ) +WORDS=($TXT) for i in {0..50}; do clear for WORD in "${WORDS[@]}"; do let "i=$RANDOM % 256" - echo -en "\e[38;5;${i}m$WORD \e[0m"; - done; + echo -en "\e[38;5;${i}m$WORD \e[0m" + done sleep 1 done echo -