Existe uma maneira de executar um script toda vez que eu me conecto a uma rede sem fio específica?

14

Existe uma rede sem fio específica à qual me conecto que requer que eu use o vpnc para acessar a Internet. Se eu fizer um script para fazer isso, existe uma maneira de configurá-lo assim toda vez que eu me conectar a esta rede, o script é executado? Para deixar claro, não quero que esse script seja executado com a maioria das conexões sem fio, apenas uma específica.

    
por Eugene M 24.09.2010 / 17:45

2 respostas

6

Você pode usar o upstart para isso. O Upstart é capaz de capturar o evento de se conectar a uma rede sem fio (ou de uma rede em geral) e usá-lo como pré-requisito para executar seu script.

O Upstart já é usado por muitos scripts no Ubuntu e eventualmente substituirá todos os scripts de init do System V no momento da inicialização.

    
por txwikinger 24.09.2010 / 18:03
5

O Network Manager executa TODOS os scripts no diretório /etc/NetworkManager/dispatcher.d/ (aqueles de propriedade do root, que são executáveis, que não são legíveis por outros usuários e não são setuid).

Variáveis de ambiente são definidas e passadas para este script pelo gerenciador de rede. Você terá interesse na variável de ambiente CONNECTION_UUID (contém uma string exclusiva).

Então, para resolver seu problema (execute um script quando uma rede sem fio específica estiver conectada):

1) descubra o uuid da conexão sem fio que você está interessado (olhando dentro do arquivo de conexão apropriado no diretório / etc / NetworkManager / system-connections /).

2) escreva um script bash (ou perl, ou python, ou qualquer outro) que faça o que você deseja se a variável de ambiente CONNECTION_UUID corresponder ao uuid da rede sem fio em (1) acima.

3) coloque este script em /etc/NetworkManager/dispatcher.d/ e defina o proprietário e as permissões adequadamente.

leitura adicional: man networkmanager (e um pequeno cutucando os scripts nos diretórios mencionados acima).

    
por finley 19.11.2010 / 15:53

Tags