¿Hay alguna forma de ejecutar un script cada vez que me conecto a una red inalámbrica específica?

14

Hay una red inalámbrica específica a la que me conecto que requiere que use vpnc para acceder a Internet. Si hago un script para hacer esto, ¿hay alguna manera de configurarlo para que cada vez que me conecte a esta red, se ejecute el script? Para ser claros, no quiero que este script se ejecute con la mayoría de las conexiones inalámbricas, solo una específica.

Eugene M
fuente

Respuestas:

6

Puedes usar advenedizo para esto. Upstart puede detectar el evento de conectarse a una red inalámbrica (o una red en general) y usar eso como requisito previo para ejecutar su script.

Upstart ya es utilizado por muchos scripts en Ubuntu y eventualmente reemplazará todos los scripts de inicio del Sistema V en el momento del arranque.

txwikinger
fuente
5

Network Manager ejecuta TODOS los scripts en el directorio /etc/NetworkManager/dispatcher.d/ (aquellos propiedad de root, que son ejecutables, que otros usuarios no pueden leer y no setuid).

El administrador de red establece y pasa las variables de entorno a este script. Te interesará la variable de entorno CONNECTION_UUID (contiene una cadena única).

Entonces, para resolver su problema (ejecute un script cuando una red inalámbrica particular esté conectada):

1) encuentre el uuid de la conexión inalámbrica que le interesa (buscando dentro del archivo de conexión apropiado en el directorio / etc / NetworkManager / system-connections /).

2) escriba un script bash (o perl, o python, o lo que sea) que haga lo que quiera si la variable de entorno CONNECTION_UUID coincide con el uuid de la red inalámbrica en (1) anterior.

3) coloque este script en /etc/NetworkManager/dispatcher.d/ y configure el propietario y los permisos de manera adecuada.

lectura adicional: man networkmanager (y un poco hurgando en los scripts en los directorios mencionados anteriormente).

finley
fuente
En una máquina Natty que está en wi-fi, ese directorio está vacío. ¿Depende esto de la versión del sistema?
nealmcb