mirror of https://gitlab.com/hp3icc/emq-TE1.git
Update wifi-connect.sh
This commit is contained in:
parent
79b2934818
commit
00ed0c57c7
|
|
@ -34,33 +34,33 @@ docker-compose down
|
||||||
sudo cat > /usr/local/bin/autoap.sh <<- "EOF"
|
sudo cat > /usr/local/bin/autoap.sh <<- "EOF"
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Tiempo de espera inicial después del encendido en segundos
|
# Tiempo de espera inicial (3 minutos)
|
||||||
TIEMPO_ESPERA_INICIAL=300
|
TIEMPO_ESPERA_INICIAL=180
|
||||||
|
|
||||||
# Lista de servicios a verificar y reiniciar si es necesario
|
# Lista de servicios systemd a verificar y detener/iniciar
|
||||||
SERVICIOS=("nginx" "hbmon.service" "hbmon2.service" "hbmon-js.service" "daprs-board.service")
|
SERVICIOS=("nginx" "hbmon.service" "hbmon2.service" "hbmon-js.service" "daprs-board.service")
|
||||||
|
|
||||||
# Función para probar la conexión a Internet
|
# Función para probar la conectividad a Internet
|
||||||
check_internet() {
|
test_internet() {
|
||||||
# Comprobamos la conexión a tres sitios
|
# Prueba de ping a varios sitios
|
||||||
for site in "noip.com" "google.com" "cloudflare.com"; do
|
for site in "noip.com" "google.com" "cloudflare.com"; do
|
||||||
if ping -c 1 "$site" >/dev/null 2>&1; then
|
if ping -c 1 "$site" >/dev/null 2>&1; then
|
||||||
return 0 # Conexión exitosa, salimos de la función
|
return 0 # Conexión exitosa, retorno 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
return 1 # Ningún sitio respondió
|
return 1 # No hay conexión
|
||||||
}
|
}
|
||||||
|
|
||||||
# Esperar el tiempo inicial
|
# Esperar el tiempo inicial
|
||||||
sleep $TIEMPO_ESPERA_INICIAL
|
sleep $TIEMPO_ESPERA_INICIAL
|
||||||
|
|
||||||
# Realizar prueba de ping a varios sitios
|
# Realizar prueba de internet
|
||||||
if check_internet; then
|
if test_internet; then
|
||||||
# Si recibe respuesta de cualquiera de los sitios, el script se detiene
|
# Si hay respuesta de Internet, el script finaliza
|
||||||
echo "Conexión a Internet detectada. Saliendo del script."
|
echo "Respuesta de Internet recibida. Saliendo del script."
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
# Si no recibe respuesta, detener servicios y ejecutar wifi-connect
|
# Si no hay respuesta de Internet, detener los servicios
|
||||||
for servicio in "${SERVICIOS[@]}"; do
|
for servicio in "${SERVICIOS[@]}"; do
|
||||||
if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && sudo systemctl is-active "$servicio" >/dev/null 2>&1; then
|
if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && sudo systemctl is-active "$servicio" >/dev/null 2>&1; then
|
||||||
sudo systemctl stop "$servicio"
|
sudo systemctl stop "$servicio"
|
||||||
|
|
@ -71,34 +71,27 @@ else
|
||||||
cd /opt/wc
|
cd /opt/wc
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
|
|
||||||
# Ciclo infinito para verificar el ping
|
# Ciclo infinito para verificar la conexión a Internet
|
||||||
while true; do
|
while true; do
|
||||||
if check_internet; then
|
if test_internet; then
|
||||||
# Si recibe respuesta de ping, ejecutar docker-compose down
|
# Si hay respuesta de Internet, realizar las siguientes acciones
|
||||||
cd /opt/wc
|
cd /opt/wc
|
||||||
docker-compose down
|
docker-compose down
|
||||||
network_name="WiFi Connect"
|
network_name="WiFi Connect"
|
||||||
nmcli connection show "$network_name" &>/dev/null && nmcli connection delete "$network_name" &>/dev/null
|
nmcli connection show "$network_name" &>/dev/null && nmcli connection delete "$network_name" &>/dev/null
|
||||||
# Salir del ciclo y continuar con el script
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
# Esperar antes del siguiente intento de ping
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
|
|
||||||
# Continuar con el script después de recibir respuesta de ping
|
# Reiniciar los servicios systemd
|
||||||
# Ciclo infinito de ping hasta recibir respuesta y reiniciar servicios
|
|
||||||
while true; do
|
|
||||||
if check_internet; then
|
|
||||||
# Recibió respuesta de ping, verificar y reiniciar servicios
|
|
||||||
for servicio in "${SERVICIOS[@]}"; do
|
for servicio in "${SERVICIOS[@]}"; do
|
||||||
if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && ! sudo systemctl is-active "$servicio" >/dev/null 2>&1; then
|
if sudo systemctl is-enabled "$servicio" >/dev/null 2>&1 && ! sudo systemctl is-active "$servicio" >/dev/null 2>&1; then
|
||||||
sudo systemctl restart "$servicio"
|
sudo systemctl start "$servicio"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Detener el servicio autoap
|
||||||
|
sudo systemctl stop autoap.service
|
||||||
|
|
||||||
# Finalizar el script
|
# Finalizar el script
|
||||||
echo "Respuesta de ping recibida. Servicios reiniciados. Saliendo del script."
|
echo "Respuesta de Internet recibida. Servicios reiniciados y autoap detenido. Saliendo del script."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
# Esperar antes de realizar el siguiente intento de ping
|
# Esperar antes de realizar el siguiente intento de ping
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue