Eu tenho um script bash que verifica meu ambiente de rede e monta os compartilhamentos de acordo. Se eu estiver no trabalho e tiver uma conexão física com a LAN, gostaria de ativar uma conexão de ponto de acesso para os dispositivos sem fio no meu escritório.
Aqui está o script:
#!/bin/bash
# are we at home?
if [ "$(ping -q -c1 00.00.00.00)" ]; then
mount <home shares>
# well then are we on campus?
elif [ "$(ping -q -c1 00.00.00.00)" ]; then
mount <work shares>
# if we're on campus, then are we connected to an ethernet cable?
if [ "$(nmcli dev list iface eth0 | grep GENERAL.CONNECTION)" != "GENERAL.CONNECTION: not connected" ]; then
nmcli con up uuid <uuid> iface wlan0
fi
fi
O comando nmcli falha; existem vários problemas.
A ferramenta nmcli não parece permitir a conexão arbitrária de uma conexão sem fio. Você pode fazer nmcli con down
, mas apenas se puder especificar o <id>
ou <uuid>
. No meu ambiente, o wlan0 se conectará a uma das várias redes sem fio arbitrariamente.
O nmcli dev disconnect
funciona com um <iface>
especificado, mas parece impedir a reconexão a qualquer coisa, exceto por seleção manual. Reconectar em um script bash parece não funcionar.
O comando nmcli con up
(atualmente no script acima) parece não funcionar se o <iface>
já estabeleceu uma conexão.
Alguma sugestão sobre como usar nmcli
para forçar uma conexão <uuid>
especificada quando uma conexão <uuid>
não especificada já foi estabelecida? Alguma coisa além da nmcli funcionaria melhor?
Obrigado!