Gibt es eine Möglichkeit, ein Skript jedes Mal auszuführen, wenn ich eine Verbindung zu einem bestimmten drahtlosen Netzwerk herstelle?


14

Es gibt ein bestimmtes drahtloses Netzwerk, zu dem ich eine Verbindung herstelle, für das ich vpnc verwenden muss, um auf das Internet zuzugreifen. Wenn ich dazu ein Skript erstelle, gibt es eine Möglichkeit, es so einzurichten, dass das Skript jedes Mal ausgeführt wird, wenn ich eine Verbindung zu diesem Netzwerk herstelle? Um klar zu sein, ich möchte nicht, dass dieses Skript mit den meisten drahtlosen Verbindungen ausgeführt wird, nur mit einer bestimmten.

Antworten:


6

Sie können hierfür upstart verwenden . Upstart ist in der Lage, das Ereignis einer Verbindung zu einem drahtlosen Netzwerk (oder einem Netzwerk im Allgemeinen) zu erfassen und dies als Voraussetzung für die Ausführung Ihres Skripts zu verwenden.

Upstart wird bereits von vielen Skripten in Ubuntu verwendet und ersetzt schließlich alle System V-Init-Skripten beim Booten.


5

Network Manager führt ALLE Skripte im Verzeichnis /etc/NetworkManager/dispatcher.d/ aus (die von root besessenen, ausführbaren, für andere Benutzer nicht lesbaren und nicht setuid-fähigen Skripte).

Umgebungsvariablen werden vom Netzwerkmanager festgelegt und an dieses Skript übergeben. Sie interessieren sich für die Umgebungsvariable CONNECTION_UUID (enthält eine eindeutige Zeichenfolge).

So lösen Sie Ihr Problem (führen Sie ein Skript aus, wenn eine Verbindung zu einem bestimmten drahtlosen Netzwerk besteht):

1) Ermitteln Sie die UUID der Funkverbindung, an der Sie interessiert sind (in der entsprechenden Verbindungsdatei im Verzeichnis / etc / NetworkManager / system-connections / nachsehen).

2) Schreiben Sie ein Bash-Skript (oder Perl-, Python- oder was auch immer), das das tut, was Sie wollen, wenn die Umgebungsvariable CONNECTION_UUID mit der UUID des drahtlosen Netzwerks in (1) oben übereinstimmt.

3) Fügen Sie dieses Skript in /etc/NetworkManager/dispatcher.d/ ein und legen Sie den Eigentümer und die Berechtigungen entsprechend fest.

Lesen Sie weiter: man networkmanager (und ein wenig stöbern in den Skripten in den oben genannten Verzeichnissen).


Auf einem Natty-Computer, der über WLAN verfügt, ist dieses Verzeichnis leer. Ist dies abhängig von der Systemversion?
Nealmcb
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.