每当我连接到特定的无线网络时,是否可以运行脚本?


14

我连接到一个特定的无线网络,要求我使用vpnc访问互联网。如果我编写了脚本来执行此操作,是否可以设置它,以便每次我连接到该网络时都运行脚本?需要明确的是,我不希望此脚本与大多数无线连接一起运行,而只是一个特定的连接。

Answers:


6

您可以为此使用新贵。Upstart能够捕获连接到无线网络(或一般网络)的事件,并将其用作运行脚本的前提条件。

Upstart已被Ubuntu中的许多脚本所使用,最终将在启动时替换所有System V初始化脚本。


5

网络管理器在/etc/NetworkManager/dispatcher.d/目录中运行所有脚本(这些脚本由root拥有,它们是可执行的,其他用户不可读,也不是setuid)。

环境变量由网络管理器设置并传递到此脚本。您将对CONNECTION_UUID环境变量(包含唯一字符串)感兴趣。

因此,要解决您的问题(在连接特定的无线网络时执行脚本):

1)找出您感兴趣的无线连接的uuid(通过在/ etc / NetworkManager / system-connections /目录中查找适当的连接文件)。

2)如果环境变量CONNECTION_UUID与上面(1)中的无线网络的uuid相匹配,则编写一个bash(或perl,python,或其他内容)脚本来执行所需的操作。

3)将此脚本放入/etc/NetworkManager/dispatcher.d/中,并适当设置所有者和权限。

进一步阅读:man networkmanager(以及上面提到的目录中的脚本乱七八糟)。


在装有wi-fi的Natty机器上,该目录为空。这取决于系统版本吗?
nealmcb 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.