Eu sugeriria executar um script de cronjob incondicionalmente (ou seja, independentemente de você estar ou não conectado ao wifi). O próprio script, em seguida, iria verificar a rede wifi e sair se você não estiver conectado ao caminho certo.
Para verificar em qual rede você está conectado, sugiro usar nmcli
. Ele irá mostrar algo como:
[jk@pororo ~]$ nmcli dev wifi list SSID BSSID MODE FREQ RATE SIGNAL SECURITY ACTIVE 'other-network' <bssid-1> Infrastructure 2412 MHz 54 MB/s 32 WPA WPA2 no 'some-other-network' <bssid-2> Infrastructure 2412 MHz 54 MB/s 25 WEP no 'my-network' <bssid-3> Infrastructure 2462 MHz 54 MB/s 99 WPA2 yes
Para fazer isso, sugiro algo como:
# extract the essid from nmcli output
essid=$(nmcli dev wifi list | sed -n "s/^'\([^']*\)'.*yes\s*$//p")
# check for my-network, exit otherwise
[ "$essid" == "my-network" ] || exit
# now we know we're connected to my-network