You've already forked scripts-random
Add ping_loop.sh
This commit is contained in:
59
01_bash/ping_loop.sh
Normal file
59
01_bash/ping_loop.sh
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ======================= #
|
||||||
|
# 🎯 Colores personalizados
|
||||||
|
# ======================= #
|
||||||
|
RED='\033[1;91m'
|
||||||
|
GREEN='\033[1;92m'
|
||||||
|
CYAN='\033[1;96m'
|
||||||
|
YELLOW='\033[1;93m'
|
||||||
|
MAGENTA='\033[1;95m'
|
||||||
|
BOLD='\033[1m'
|
||||||
|
NC='\033[0m' # Sin color
|
||||||
|
|
||||||
|
# ======================= #
|
||||||
|
# 👋 Función al salir
|
||||||
|
# ======================= #
|
||||||
|
function despedida() {
|
||||||
|
echo -e "\n${MAGENTA}${BOLD}👋 Gracias por usar el script. ¡Hasta luego!${NC}"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Capturar Ctrl + C
|
||||||
|
trap despedida SIGINT
|
||||||
|
|
||||||
|
# ======================= #
|
||||||
|
# 🖥️ Título del script
|
||||||
|
# ======================= #
|
||||||
|
echo -e "${CYAN}${BOLD}=============================="
|
||||||
|
echo -e " PING LOOP SCRIPT"
|
||||||
|
echo -e "==============================${NC}"
|
||||||
|
|
||||||
|
# ======================= #
|
||||||
|
# 🔧 Solicitar parámetros
|
||||||
|
# ======================= #
|
||||||
|
read -p "$(echo -e "${YELLOW}${BOLD}🌐 Introduce la web o IP a hacer ping: ${NC}")" destino
|
||||||
|
read -p "$(echo -e "${YELLOW}${BOLD}⏱️ Intervalo entre intentos fallidos (en segundos): ${NC}")" intervalo
|
||||||
|
|
||||||
|
# ======================= #
|
||||||
|
# 🔁 Bucle de ping
|
||||||
|
# ======================= #
|
||||||
|
contador=0
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
((contador++))
|
||||||
|
timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
||||||
|
salida_ping=$(ping -c1 -W1 -w5 "$destino" 2>&1)
|
||||||
|
|
||||||
|
if echo "$salida_ping" | grep -q 'time='; then
|
||||||
|
rtt=$(echo "$salida_ping" | sed -n 's/.*time=\([0-9.]* ms\).*/\1/p')
|
||||||
|
echo -e "${GREEN}${BOLD}[✓] Intento $contador - $timestamp - Respuesta de $destino: $rtt${NC}"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo -e "${RED}${BOLD}[✗] Intento $contador - $timestamp - Sin respuesta de $destino${NC}"
|
||||||
|
sleep "$intervalo"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Mensaje final (en caso de salir por éxito)
|
||||||
|
despedida
|
||||||
Reference in New Issue
Block a user