Executando o iwgetid, você obtém o dispositivo sem fio e o SSID da rede conectada. É parte das ferramentas sem fio - que você parece já ter instalado porque o iwevent também faz parte dele.
Eu uso meu laptop pessoal tanto em casa quanto no trabalho e, em ambos os casos, montei as ações do nfs. Eu gostaria de automatizar a montagem desses compartilhamentos como eles são feitos toda vez que eu ligo o laptop.
Eu não posso fazer com que seja um comando normal de inicialização, porque a conexão sem fio leva cerca de meio minuto para localizar a rede e se conectar.
Então, eu queria escrever um script que verifica a cada 5 segundos se eu estiver conectado a uma rede e qual o conteúdo da rede para que eu possa montar os compartilhamentos apropriados.
Eu olhei para o iwconfig, e ifconfig e nenhum deles retornam um essid, apenas um endereço IP real.
ifconfig return ...
eth0 Link encap:Ethernet HWaddr 00:26:2d:a2:01:a8
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:16
eth1 Link encap:Ethernet HWaddr f0:7b:cb:45:36:b2
inet addr:192.168.0.48 Bcast:192.168.3.255 Mask:255.255.252.0
inet6 addr: fe80::f27b:cbff:fe45:36b2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30972 errors:0 dropped:0 overruns:0 frame:124824
TX packets:31414 errors:16 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25279206 (25.2 MB) TX bytes:4716009 (4.7 MB)
Interrupt:17
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:336 errors:0 dropped:0 overruns:0 frame:0
TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:48501 (48.5 KB) TX bytes:48501 (48.5 KB)
O iwconfig retorna ...
lo no wireless extensions.
eth0 no wireless extensions.
eth1 IEEE 802.11 Access Point: Not-Associated
Link Quality:5 Signal level:210 Noise level:165
Rx invalid nwid:0 invalid crypt:0 invalid misc:0
vboxnet0 no wireless extensions.
O iwlist não retornou nada de útil ...
iwlist scan
lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
eth1 Interface doesn't support scanning.
vboxnet0 Interface doesn't support scanning.
Alguém sabe um método fácil para descobrir o essencial da rede sem fio que você está conectado através da linha de comando do linux.
Atualizar Eu adicionei o ifconfig e iwconfig informações acima, também estou executando o Ubuntu 10.10 e foi atualizado de 10.04, que parece ter mexido com o wireless um pouco. Eles não usam mais o antigo aplicativo Network-Manager do gnome. Também não consigo me conectar à rede sem fio de minha escola, então, definitivamente, para começar, definitivamente há algo interessante com a tecnologia sem fio.
retorno iwevent ...
iwevent
Waiting for Wireless Events from interfaces...
16:34:33.614296 eth1 Set ESSID:"" [13]
16:34:33.615723 eth1 Custom driver event:
16:34:33.615774 eth1 New Access Point/Cell address:Not-Associated
16:34:33.714835 eth1 Set ESSID:"" [62]
16:34:41.869636 eth1 Set Mode:Managed
16:34:41.869688 eth1 Set ESSID:"" [254]
16:34:42.815795 eth1 Custom driver event:
16:35:07.141450 eth1 Set Mode:Managed
16:35:07.141502 eth1 Set Frequency:24.12 GHz
16:35:07.141601 eth1 Set ESSID:"" [121]
16:35:08.160515 eth1 New Access Point/Cell address:00:1E:00:00:19:0E
16:35:08.252912 eth1 Registered node:00:1E:52:79:19:0E
16:35:08.252970 eth1 Custom driver event:
iwlist scan
certamente deve funcionar para fornecer o ssid. No entanto, a partir do seu exemplo, não vejo nenhuma interface sem fio real. Sugiro colar a saída do iwconfig e ifconfig na sua pergunta para ajudar a descobrir isso.
Além de olhar a página iwevent
man, acho que talvez sua melhor aposta seja executar um loop que chame iwevent. Quando o ssid mudar, o iwevent detectará e reportará o novo ssid.
Note que o polling a cada 5 segundos soa bastante intensivo, talvez você deva executá-lo com menos frequência?
Eu tenho um script antigo que lida com um cheque como este usando o iwconfig que funciona há vários anos em várias distribuições do Fedora:
iwconfig wlan0 | grep ESSID | awk -F: '{print $2}'Então eu simplesmente tomo uma decisão no script baseado no que isso retorna, como iniciar um serviço em casa ou um serviço de trabalho. O seu comando iwconfig não retorna informações como essas associadas a um ponto de acesso?
Você também pode ter seu script trabalhando com base no endereço IP obtido e fazer com que sua rede doméstica forneça uma sub-rede diferente.
Ou baseie-o no endereço MAC da rota padrão. Você só precisará atualizá-lo se o roteador mudar alguma vez.