特定のワイヤレスネットワークに接続するたびにスクリプトを実行する方法はありますか?


14

インターネットにアクセスするためにvpncを使用する必要がある特定のワイヤレスネットワークがあります。これを行うためのスクリプトを作成する場合、このネットワークに接続するたびにスクリプトが実行されるようにセットアップする方法はありますか?明確にするために、このスクリプトをほとんどのワイヤレス接続で実行するのではなく、1つの特定の接続でのみ実行したいのです。

回答:


6

これにはupstartを使用できます。Upstartは、ワイヤレスネットワーク(または一般的なネットワーク)に接続するイベントをキャッチし、スクリプトを実行するための前提条件として使用できます。

UpstartはすでにUbuntuの多くのスクリプトで使用されており、ブート時にすべてのSystem V initスクリプトを最終的に置き換えます。


5

Network Managerは、/ etc / NetworkManager / dispatcher.d /ディレクトリー内のすべてのスクリプトを実行します(rootが所有し、実行可能で、他のユーザーから読み取り可能でなく、setuidでもないスクリプト)。

環境変数が設定され、ネットワークマネージャーによってこのスクリプトに渡されます。CONNECTION_UUID環境変数(一意の文字列を含む)に関心があります。

したがって、問題を解決するには(特定のワイヤレスネットワークが接続されているときにスクリプトを実行します):

1)(/ etc / NetworkManager / system-connections /ディレクトリ内の適切な接続ファイル内を見て)興味のあるワイヤレス接続のuuidを見つけます。

2)環境変数CONNECTION_UUIDが上記の(1)のワイヤレスネットワークのuuidに一致する場合に必要なことを行うbash(またはperl、またはpython、その他)スクリプトを記述します。

3)このスクリプトを/etc/NetworkManager/dispatcher.d/に配置し、所有者と権限を適切に設定します。

さらに読む:man networkmanager(および上記のディレクトリ内のスクリプトを突っ走るリッテ)。


Wi-Fi上にあるNattyマシンでは、そのディレクトリは空です。これはシステムのバージョンに依存しますか?
nealmcb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.