Lanzar un script cuando se conecta a Wifi

Hola!
zyrus
Ronin
Ronin
Posts: 2
Joined: 11 Jun 2024, 17:51
Distribution: porteus

Lanzar un script cuando se conecta a Wifi

Post#1 by zyrus » 11 Jun 2024, 18:16

Hola gente
Me gustaria ejecutar un script cuando via wifi se detecte una conexión a internet establecida. Por lo que veo Porteus usa NetworkManager, y según he leido por ahí, este software tiene unos directorios en /etc/NetworkManager donde situar los scripts, en concreto uno llamado dispatcher.d , pero situo ahí un script de prueba para que me escriba, (de los parametros que NetworkManager pasa a los scripts allí situados), el evento generado, pero no hace nada. Si lo ejecuto yo manualmente con dos parametros todo va bien, pero nunca se lanza ese script, que se supone que NetworkManager lanza automaticamente cada vez que hay un evento relacionado con la conexion/interfaz, cosa que yo fuerzo para ver si funciona, conectandome y desconectandome del wifi.
No me vale el cheatcode guiexec ya que la conexion a una red wifi no es automática; precisa clicar en un boton en una pagina de acceso que ofrece el router
Gracias anticipadas

Kulle
Warlord
Warlord
Posts: 644
Joined: 28 Jan 2017, 10:39
Distribution: v4.0 64bit Xfce
Location: Berlin

Lanzar un script cuando se conecta a Wifi

Post#2 by Kulle » 12 Jun 2024, 14:49

Aquí hay un guión:

Code: Select all

#!/bin/bash

# Verfügbare WLAN-Netze auflisten und nummerieren
networks=($(nmcli -t -f SSID device wifi list | awk -F: '{print $1}'))
for i in "${!networks[@]}"; do
    echo "$((i+1)). ${networks[i]}"
done

# Benutzereingabe für die gewünschte Nummer
read -p "Bitte geben Sie die Nummer des gewünschten WLAN-Netzes ein: " choice

# SSID basierend auf der ausgewählten Nummer ausgeben
selected_ssid="${networks[choice-1]}"
if [ -n "$selected_ssid" ]; then
    read -s -p "Bitte geben Sie das Passwort für '$selected_ssid' ein: " password
    nmcli device wifi connect "$selected_ssid" password "$password"
else
    echo "Ungültige Auswahl. Bitte geben Sie eine gültige Nummer ein."
fi
AI assisted browsers: Opera, Microsoft Edge and others
Mira aquí: #10

zyrus
Ronin
Ronin
Posts: 2
Joined: 11 Jun 2024, 17:51
Distribution: porteus

Lanzar un script cuando se conecta a Wifi

Post#3 by zyrus » 13 Jun 2024, 18:33

Gracias por la respuesta, pero creo que no es lo que preguntaba o me he explicado mal; lo que yo necesito es saber si no hay un evento que NetworkManager identifique como conexión realizada a una red inalámbrica y distinguirlo en un script en el directorio dispatcher.d para ejecutar cierto comando sólo cuando se dé ese evento, el de la conexión, NO el de la desconexión. Leo que NetworkManager tiene el evento o accion up pero eso es sólo para cuando la interfaz esta activada, y tiene otro llamada connectivity-change que podria valerme, pero ese acción se produce tanto cuando detecta conexión como cuando se va fuera de linea. No me importa si la conexión es a un SSID u otro, sólo que se esté conectado de manera efectiva (esto es, ping externos devueltos con éxito, ya que algunos routers públicos precisan de una validación inicial via página, vamos, hacer click en un botón, o no sales a internet)

Dicho de otro modo, poder usar el servicio NetworkManager-dispatcher (https://www.networkmanager.dev/docs/api ... tcher.html) para hacer "algo" cuando detecte conectividad

User avatar
M. Eerie
Moderator
Moderator
Posts: 650
Joined: 31 Aug 2017, 21:18
Distribution: Nemesis Xfce/MATE x64

Lanzar un script cuando se conecta a Wifi

Post#4 by M. Eerie » 02 Jul 2024, 09:02

zyrus wrote:
13 Jun 2024, 18:33
hacer "algo" cuando detecte conectividad
Hola zyrus.

Desconozco qué distribución estás utilizando, por tanto desconozco el servicio que dispararía dicho evento. Si es una derivada de archlinux, o artix en el caso de Nemesis, el script necesario debe ir en la carpeta /etc/NetworkManager/dispatcher.d tal como se indica aquí.

Si es porteus, la carpeta probablemente sea otra (/etc/network/ /etc/network/if-up.d/ o similar). Prueba a nombrar el script sin extensión alguna y asegúrate de marcarlo como ejecutable...

No puedo ayudarte mucho más ya que no se trata de una pregunta específica de Porteus, sino que depende del tipo de distribución que utilices.
> Does not compute_ 🖖

https://forum.porteus.org/viewtopic.php?p=94310#p94310
https://forum.porteus.org/viewtopic.php?p=84002#p84002
https://forum.porteus.org/viewtopic.php?p=77174#p77174
https://forum.porteus.org/viewtopic.php?f=39&t=8584

Post Reply