Esiste un modo per eseguire uno script ogni volta che mi collego a una rete wireless specifica?


14

Esiste una specifica rete wireless a cui mi connetto che richiede di utilizzare vpnc per accedere a Internet. Se faccio uno script per farlo, c'è un modo per configurarlo, quindi ogni volta che mi collego a questa rete, lo script viene eseguito? Per essere chiari, non voglio che questo script venga eseguito con la maggior parte delle connessioni wireless, solo una specifica.

Risposte:


6

Puoi usare upstart per questo. Upstart è in grado di rilevare l'evento di connessione a una rete wireless (o una rete in generale) e utilizzarlo come prerequisito per l'esecuzione dello script.

Upstart è già utilizzato da molti script in Ubuntu e alla fine sostituirà tutti gli script init System V al momento dell'avvio.


5

Network Manager esegue TUTTI gli script nella directory /etc/NetworkManager/dispatcher.d/ (quelli di proprietà di root, che sono eseguibili, che non sono leggibili da altri utenti e non setuid).

Le variabili di ambiente vengono impostate e passate a questo script dal gestore della rete. Ti interesserà la variabile di ambiente CONNECTION_UUID (contiene una stringa univoca).

Quindi, per risolvere il tuo problema (esegui uno script quando è connessa una particolare rete wireless):

1) scopri il uuid della connessione wireless che ti interessa (guardando all'interno del file di connessione appropriato nella directory / etc / NetworkManager / system-connections /).

2) scrivi uno script bash (o perl, o python, o altro) che fa quello che vuoi se la variabile d'ambiente CONNECTION_UUID è una corrispondenza con il uuid della rete wireless in (1) sopra.

3) inserire questo script in /etc/NetworkManager/dispatcher.d/ e impostare il proprietario e le autorizzazioni in modo appropriato.

ulteriori letture: man networkmanager (e una litte che prende in giro gli script nelle directory sopra menzionate).


Su una macchina Natty che è su Wi-Fi, quella directory è vuota. Dipende dalla versione del sistema?
nealmcb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.