Estou escrevendo um script que mudará meu endereço MAC ethernet em uma rede local. Funcionará da seguinte forma:
- Inicialmente a eth0 será desativada
- O MAC será alterado usando o utilitário ifconfig
- eth0 será criado
#!/bin/sh
sleep 5
ifconfig eth0 down
sleep 10
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
sleep 1
ifconfig eth0 up
Se eu executar o script acima, o MAC muda com sucesso, também o ícone de rede no painel mostra o status 'Conectando' e após alguns segundos a eth0 é conectada à rede novamente.
Então eu adicionei algumas linhas para aumentar a funcionalidade do meu código -
/sbin/ifconfig eth0| grep 'inet addr:'
ifconfig eth0 | awk '/HWaddr/ {print $5}'
ping 192.168.1.107 -c 2
As linhas acima exibem o novo endereço IP, o endereço MAC e também envia uma solicitação de ping para confirmar que a rede está funcionando normalmente.
Mas o problema que estou enfrentando é que depois de adicionar as linhas acima, eu recebo uma falha de ping, e também o ícone de rede no painel mostra o status 'Conectando'. Depois que o script é executado completamente, após alguns segundos , a eth0 é conectada completamente. (ping pode ser feito)
Então eu tentei adicionar o sono 30 após a seguinte linha
ifconfig eth0 up
assumindo que isso consertaria o problema do ping. Mas ainda assim o ping (mencionado no script) falha e a rede leva algum tempo após a execução do script para estabelecer uma conexão completa.
Como devo corrigir esse problema?