Configurando interfaces de rede

Publicado por Willian Oliveira (última atualização em 01/09/2010)

[ Hits: 15.477 ]

Download interfaces




Olá pessoal,

Eu sei que é muito fácil configurar interfaces de rede, mas eu acabei de criar um Shell-Script para fazer isso de uma forma mais interativa. Só tem algumas funcionalidades por enquanto, mas está bem funcional!

Por enquanto só tem isso:

* Ele cria e configura a interface de rede de forma que você não precisa saber muita coisa (estático e DHCP)
* Coloca IP automaticamente (se não colocado - como estático)
* Cria arquivos de configurações diferentes
* Une arquivos de configurações distintos

Esse script funciona bem no Debian Lenny 5.0.5, não testei em outras distribuições.

Para quem não sabe:

Ao baixar o arquivo, abra o terminal, e digite:

$ cd ~ (para ir para a pasta do seu usuário normal)
$ cd Downloads (ou outro diretório que o seu navegado salva os downloads)
$ sudo chmod 755 interfaces (dê permissões para o arquivo)
$ sudo ./interfaces (para executar o script)

Mas, cuidado!!! Esse script pode ajudar ou atrapalhar, use com consciência, pois o mesmo pode desconfigurar todas as suas interfaces de rede.
Eu acho que ele não funciona com interfaces wireless (pois não testei com a rede sem fio), quem testar e quiser compartilhar pode fica a vontade! =D

Desculpe qualquer erro de português do script, é que eu me preocupei com a parte funcional... xD

Abraços, até mais....
=D

Obs.: Não deixem de comentar.

  



Esconder código-fonte

#!/bin/bash

#Pergunta se deseja sair
sair()
{
echo -n "Você deseja sair ? [s/n] "
read sairfun

if [ $sairfun = "n" ]
then
   $funcao
else
   exit
fi
}

#Fazer configuração estática
estatico() 
{

echo "" >> /etc/network/interfaces

#Verifica se foi digitado algo nas variáveis, se não, ele preenche ou ignora
   if [ -z $ip ]
   then
      ip="192.168.0.2"
      echo "address $ip" >> /etc/network/interfaces

   else

      echo "address $ip" >> /etc/network/interfaces

   fi

   
   if [ -z $mascara ]
   then
      mascara="255.255.255.0"
      echo "netmask $mascara" >> /etc/network/interfaces

   else

      echo "netmask $mascara" >> /etc/network/interfaces

   fi

   if [ -z $rede ]
   then
      echo "#network $rede" >> /etc/network/interfaces
   else
      echo "network $rede" >> /etc/network/interfaces
   fi

   if [ -z $broadcast ]
   then
      echo "#broadcast $broadcast" >> /etc/network/interfaces
   else
      echo "broadcast $broadcast" >> /etc/network/interfaces
   fi

   if [ -z $gateway ]
   then
      echo "#gateway $gateway" >> /etc/network/interfaces
   else
      echo "gateway $gateway" >> /etc/network/interfaces
   fi

   if [ -z $mac ]
   then
      echo "#hwaddress ether $mac" >> /etc/network/interfaces
   else
      echo "hwaddress ether $mac" >> /etc/network/interfaces
   fi
}
#Fim do estático


nova()
{

clear
funcao="nova"

#Verifica se existe uma pasta de configuração
if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação
echo    "============================================================"
echo    "|                    Nova configuração                     |"
echo    "============================================================"
echo -n " Escreva o nome da configuração: [sem espaço] "
read nome
echo    "============================================================"
echo ""
mii-tool
echo ""
echo    "============================================================"
echo -n " Escreva o nome da interface: [eth0] "
read interface

   if [ -z $interface]
   then
      interface="eth0"
   fi

echo    "============================================================"
echo -n " Escreva como deseja usar a interface: [dhcp/static] "
read modo
echo    "============================================================"
   case $modo in

   static)
   echo -n "Digite o endereço IP (ex. 192.168.0.2): "
   read ip
   echo -n "Digite a mascara (ex. 255.255.255.0): "
   read mascara
   echo -n "Digite a rede (não necessário): "
   read rede
   echo -n "Digite o endereço broadcast (não obrigatório): "
   read broadcast
   echo -n "Digite o gateway (não obrigatório): "
   read gateway
   echo -n "Digite o mac (não obrigatório): "
   read mac
   ;;

   dhcp)
   echo "Usando configuração DHCP"
   ;;
   *)
   echo "Esse modo não é válido"
   echo "Usando DHCP"
   modo="dhcp"
   ;;
   esac
echo    "============================================================"
echo -n "Apagar todo arquivo de configuração? [s/n] "
read apagar


#Você não deseja apagar o arquivo todo

if [ $apagar = "n" -o $apagar = "não" ]
then
apagar=""
echo "" >> /etc/network/interfaces
echo "#Configuração: $nome" >> /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto $interface" >> /etc/network/interfaces
echo "iface $interface inet $modo" >> /etc/network/interfaces

   if [ $modo = "static" ]
   then
      estatico   
   fi

/etc/init.d/networking restart

echo ""
cat /etc/network/interfaces
echo ""

echo -n "Salvar a configuração como está [s/n] "
read salvar

   if [ $salvar = "s" ]
   then
      cp /etc/network/interfaces /interfaces/$nome
      echo "Salvo"      
      exit
   else
      echo "Não salvo"
      exit
   fi


fi

#Se for diferente de "n" ou "não" o script aparagá o arquivo
if [ $apagar="s" ]
then
apagar=""
echo "#Configuração: $nome" > /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto $interface" >> /etc/network/interfaces
echo "iface $interface inet $modo" >> /etc/network/interfaces

   if [ $modo = "static" ]
   then
      estatico
   fi

/etc/init.d/networking restart

echo ""
cat /etc/network/interfaces
echo ""

echo -n "Salvar a configuração como está [s/n] "
read guardar
   
   if [ $guardar = "s" ]
   then
      guardar=""      
      cp /etc/network/interfaces /interfaces/$nome
      echo "Salvo"      
      sair
   else
      echo "Não salvo"
      sair
   fi

fi
}



#Função para usar unir uma interface salva com a atual
unir()
{

clear
funcao="unir"

#Verifica se a pasta existe, se não ele cria uma
if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação da pasta

#Menu da função unir
echo "==================================================="
echo "|          Escolha o arquivo para unir            |"
echo "==================================================="
echo ""
ls /interfaces | more
echo ""
echo "==================================================="
echo ""
echo -n "Escolha: "
read escolha

   if [ -e /interfaces/$escolha ]
   then
      echo "" >> /etc/network/interfaces
      cat /interfaces/$escolha >> /etc/network/interfaces
      cat /etc/network/interfaces
      /etc/init.d/networking restart
   else
      echo "Arquivo não existe"
      sleep 2
      $funcao
   fi
}


#Função para usar as interfaces configuradas
configurada()
{

clear
funcao="configurada"

#Verifica se a pasta existe, se não ele cria

if [ -e /interfaces ]
then
echo "A pasta de configurações já existe"
else
mkdir /interfaces
echo "A pasta de configurações foi criada"
fi
#Termina a verificação da pasta

#Menu da fução configurada
echo "==================================================="
echo "|         Usar uma interface configurada          |"
echo "==================================================="
echo "|       Qual configuração você deseja usar:       |"
echo "==================================================="
echo ""
ls /interfaces | more
echo ""
echo "==================================================="
echo -n "Escolha: "
read escolha

   if [ -e /interfaces/$escolha ]
   then
      cp /interfaces/$escolha /etc/network/interfaces
      /etc/init.d/networking restart
      sair
   else
      echo "Essa configuração não existe!"
      sleep 2
      $funcao
fi
}

menu()
{

clear
funcao="menu"

#Menu principal
clear
echo "==================================================="
echo "|          O que você deseja fazer:               |"
echo "==================================================="
echo "| 1) Nova configuração                            |"
echo "| 2) Usar configuração                            |"
echo "| 3) Unir aquivo salvo com a configuração         |"
echo "==================================================="
echo "| q) Sair                                         |"
echo "==================================================="
echo ""
echo -n "Opção escolhida: "
read fazer

case $fazer in
1)
clear
nova

;;
2) 
clear
configurada
;;
3)
clear
unir
;;
q)
clear
exit
;;
*)
echo -n "Opção inválida"
sleep 2
menu
esac
}


#Iniciar a função do menu principal
menu

Scripts recomendados

S-montar/desmontar

rc.hdparm

compactação de backup diários

Qual o maior número da variável RANDOM?

S-info


  

Comentários
[1] Comentário enviado por rony_souza em 02/09/2010 - 22:24h

Otima dica Valeu!!!!!!

[2] Comentário enviado por joaogauer em 23/11/2013 - 17:45h

Muito bom, porém só para uma interface, estou querendo bolar um para + interfaces estou penando para apagar as configurações de uma interface especifica


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts