Configurando a rede para dois locais com diferentes endereços IP estáticos por script

1

Eu tenho um Raspberry Pi 2 e gostaria de usá-lo em casa e no trabalho. Em casa, ele poderia obter um endereço DHCP ou um endereço estático 192.168.2.x, mas no trabalho ele deve obter o endereço IP estático 10.10.34.122.

Eu sei como atribuir manualmente um endereço IP estático editando /etc/network/interfaces , mas, depois disso, não consigo mais acessar o dispositivo se estiver na outra rede, por isso ele precisa de uma detecção automática. / p>

Minha ideia era criar dois arquivos ( /etc/network/home.if e /etc/network/work.if ) e copiá-los conforme necessário. Gostaria de começar com o 192 endereço e tentar pingar meu roteador DSL. Se responder, use home.if , se não, use work.if .

Até agora, acho que esse script deve alcançar o que eu quero:

#!/bin/bash
# Start with my home setting
cp /etc/network/home.if /etc/network/interfaces
sudo /etc/init.d/networking restart

# If I can ping my router, I'm at home
ping=$(ping 192.168.2.1 -c 1)
#echo $ping
if [[ "$ping" =~ "1 received" ]]; then
        echo "home"
        cp /etc/network/home.if /etc/network/interfaces
else
        echo "work"
        cp /etc/network/work.if /etc/network/interfaces
fi

# Apply the detected settings
sudo /etc/init.d/networking restart

Onde eu preciso colocar este script que é executado no lugar correto durante a seqüência de inicialização?

    
por Thomas Weller 29.06.2015 / 23:33

1 resposta

1

Você pode chamá-lo pelo arquivo /etc/rc.local. Você pode adicionar as linhas a esse arquivo ou chamar o script lá. Seja qual for a sua escolha, você deve adicioná-la acima da linha 'exit 0'.

BTW: Sugiro que você adicione um comando wait após a primeira reinicialização da rede, pois pode levar alguns segundos para a rede iniciar. Se o ping chegar mais cedo, você poderá obter um resultado incorreto.

    
por wie5Ooma 29.06.2015 / 23:48