Есть ли способ запускать скрипт каждый раз, когда я подключаюсь к конкретной беспроводной сети?

Существует определенная беспроводная сеть, к которой я подключаюсь, для чего требуется использовать vpnc для доступа в Интернет. Если я создаю скрипт для этого, есть ли способ его настроить, поэтому каждый раз, когда я подключаюсь к этой сети, запускается сценарий? Чтобы быть ясным, я не хочу, чтобы этот скрипт выполнялся с большинством беспроводных подключений, всего один конкретный.

Вы можете использовать выскочку для этого. Upstart может поймать событие подключения к беспроводной сети (или сети в целом) и использовать это как необходимое условие для запуска вашего скрипта.

Upstart уже используется множеством скриптов в Ubuntu и в конечном итоге заменит все скрипты инициализации System V во время загрузки.

Network Manager запускает ВСЕ скрипты в каталоге /etc/NetworkManager/dispatcher.d/ (те, которые принадлежат root, которые являются исполняемыми, которые не читаются другими пользователями, а не setuid).

Переменные окружения устанавливаются и передаются этому скрипту диспетчером сети. Вас будет интересовать переменная среды CONNECTION_UUID (содержит уникальную строку).

Итак, чтобы решить вашу проблему (выполните сценарий, когда к какой-либо конкретной беспроводной сети подключены):

1) узнайте о интересующем вас беспроводном соединении (просмотрев соответствующий файл подключения в каталоге / etc / NetworkManager / system-connections /).

2) напишите сценарий bash (или perl, или python или что-то еще), который делает то, что вы хотите, если переменная окружения CONNECTION_UUID соответствует совпадению беспроводной сети в (1) выше.

3) поместите этот скрипт в /etc/NetworkManager/dispatcher.d/ и установите владельца и разрешения соответствующим образом.

Дальнейшее чтение: man networkmanager (и litte, ковыряющий скрипты в упомянутых выше каталогах).