Sobrescrevendo o arquivo de interfaces de rede usando um script de configuração do Bash

0

Eu estou em um dilema aqui, eu tenho um Repositório do GitHub de tamanho decente e quero criar um setup.sh ou um bootstrap.sh que, uma vez executado como root , baixaria alguns módulos pip e apt repositories necessários nas máquinas disparadas.

The Repository is aimed at Raspberry Pis running on Raspbian Jessie 8.0. Pis need to be setup as AdHoc Network Nodes. However, the script I wish to write can be used on any Debian Distribution based Laptop too.

Eu quero que esse arquivo setup.sh / bootstrap.sh também crie um backup do arquivo /etc/network/interfaces e sobrescreva o original configurando as interfaces da seguinte forma:

## Desired Interfaces file
auto lo
iface lo inet loopback

## Ethernet LAN
iface eth0 inet dhcp

## WLAN AdHoc
auto wlan0
allow hot-plug wlan0
iface wlan0 inet6 auto ## IPv6

Eu quero escrever os dados completos acima mencionados no setup.sh , mas acho que não é uma prática padrão!

Devo criar um arquivo interfaces.txt e que ele contenha os detalhes mencionados acima e, em seguida, usar > ou >> no meu setup.sh ?

Exemplo

algo como

# in the setup.sh file
cat interfaces.txt > /etc/network/interfaces

cat adhoc.txt > /etc/rc.local

onde, adhoc.txt contém

adhocNet(){
    ifconfig wlan0 down
    iwconfig wlan0 mode ad-hoc essid my-ESSID channel 1 txpower 3dBm
    ifconfig wlan0 up
}
adhocNet()
exit 0

Eu quero criar este script bash que pode tornar as coisas para o usuário final muito mais fáceis! (Apenas um pensamento aqui!)

Pergunta

Isso implica que eu tenho que criar um arquivo .txt para todas as configurações que eu quero configurar na minha máquina GNU / Linux ou existe um meio termo para isso?

Como grandes repositórios criam esses scripts de bash para que o usuário final ache fácil usá-lo inicialmente.

    
por Shan-Desai 06.12.2016 / 15:46

1 resposta

1

Se você quiser manter tudo em um arquivo, terá que ter os arquivos que deseja modificar no seu script. Para tornar seu script mais legível, você pode usar algo assim: link

Mais uma coisa que você deve considerar: eth0 é muito comum, mas não é necessário o nome real da interface de rede. Especialmente desde que os Nomes Previsíveis de Interface de Rede parecem se tornar cada vez mais comuns.

    
por 07.12.2016 / 11:52

Tags