Quando a interface recebe um endereço IP, execute um script de shell

1

Estou executando um servidor Debian Lenny com duas interfaces de rede. A primeira interface eth0 é conectada à LAN e recebe um endereço IP do servidor DHCP nesta LAN. A segunda interface eth1 é conectada diretamente a um NAS, neste NAS, um servidor DHCP é instalado, assim, quando o NAS é ligado, o eth1 recebe um endereço IP deste.

Eu quero executar um script de shell automaticamente quando o eth1 receber um endereço de IP. Como isso pode ser feito?

    
por Dennis Williamson 30.11.2009 / 22:55

3 respostas

5

Coloque o script de shell em um argumento up para a sub-rotina de configuração eth1 em /etc/network/interfaces .

    
por 30.11.2009 / 23:04
0

Seu sistema já está executando um script quando recebe um endereço IP via DHCP. É exatamente assim que as informações fornecidas pelo servidor DHCP são usadas para configurar coisas como seu endereço IP, configuração de resolução, roteamento e assim por diante.

Se você estiver usando o cliente ISC dhcp (chamado "dhclient"), então o script é tipicamente algo como / etc / dhclient-script. Se você estiver usando outro cliente DHCP (bomba, etc), provavelmente terá uma funcionalidade semelhante.

    
por 01.12.2009 / 02:48
-1

você também pode executar um cronjob para verificar seu ipadress com freqüência.

você pode usar um script com o seguinte conteúdo:

if [ $(ifconfig  eth1 |grep "inet a"| cut -f 2 -d ":" | cut -f 1 -d " ") = "youripadress" ];
then 
     echo "oh, i got an ip";
     #do some nasty stuff here!

fi

mas você tem que construir algo de alguma forma, o script é executado apenas 1 vez. por exemplo. salve ip em um arquivo e verifique se o ip mudou ou algo assim. A resposta do womble seria a melhor solução se você quiser apenas verificar se a interface é exibida exatamente uma vez.

    
por 30.11.2009 / 23:09